CodeDomgenerics类型约束
有没有办法用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。
我也使用零宽度空间( "\x200Bclass"
)而不是普通空间。 然后我在最后一个字符串中用空字符串替换它: .Replace("\x200B", string.Empty);