有没有办法用CodeDom生成类约束。
因为当我使用像
这样的东西时var method = new CodeMemberMethod();
var genericParam = new CodeTypeParameter("InterfaceType");
genericParam.Constraints.Add("class");
method.TypeParameters.Add(genericParam);
生成的代码就像
private InterfaceType GetImpl<InterfaceType>()
where InterfaceType : @class
{
}
我找到的最佳解决方法是在课程之前使用前导空格
genericParam.Constraints.Add(" class");
但这似乎充其量只是一种解决方法。
答案 0 :(得分:6)
似乎没有直接的方法来指定该约束。 for the "struct" constraint。
对于“T:new()”约束,请使用标记HasConstructorConstraint
其余使用this msdn example中的CodeTypeReference。
答案 1 :(得分:1)
我也使用零宽度空间("\x200Bclass"
)而不是普通空间。然后我在最后一个字符串中用空字符串.Replace("\x200B", string.Empty);