有没有办法用CodeDom生成类约束.
因为当我使用类似的东西
var method = new CodeMemberMethod(); var genericParam = new CodeTypeParameter("InterfaceType"); genericParam.Constraints.Add("class"); method.TypeParameters.Add(genericParam);
生成的代码就像
private InterfaceType GetImpl() where InterfaceType : @class { }
我发现最好的解决方法是在课前使用前导空格
genericParam.Constraints.Add(" class");
但这似乎充其量只是一种解决方法.
似乎没有直接的方法来指定该约束.对于"struct"约束都没有.
对于"T:new()"约束,请使用该标志 HasConstructorConstraint
对于其余部分,请使用此msdn示例中的 CodeTypeReference .