如何使CodeDom生成的类实现自引用通用接口

时间:2012-10-31 23:14:37

标签: .net generics interface code-generation codedom

我正在生成value objects,我希望将我的方法从模板转换为CodeDom方法。

我希望我的类型实现一个或两个自引用通用接口(即IEquatable<MyValueObject>IComparable<MyValueObject>)。

我已经能够通过执行字符串操作并调用等效的CodeTypeDeclaration.Members.Add("IEquatable<MyValueObject")来获得所需的结果,但如果可能的话,我宁愿使用对象模型。是否有更好的方法或字符串是我最好的选择?

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

var type = new CodeTypeDeclaration("MyValueObject");
var iequatable = new CodeTypeReference(
    "IEquatable", new CodeTypeReference(type.Name));
type.BaseTypes.Add(iequatable);