其他分享
首页 > 其他分享> > 我如何创建一个从另一个继承并在CodeDom中传递类型参数的类?

我如何创建一个从另一个继承并在CodeDom中传递类型参数的类?

作者:互联网

这就是我想要的结果类声明如下所示:

public sealed partial class Refund : DataObjectBase<Refund>
 {
}

}

此代码(片段):

targetClass = new CodeTypeDeclaration(className);
            targetClass.IsClass = true;
            targetClass.TypeAttributes =
                TypeAttributes.Public | TypeAttributes.Sealed;
            targetClass.IsPartial = true; //partial so that genn'ed code can be safely modified
            targetClass.TypeParameters.Add(new CodeTypeParameter{ Name=className});
            targetClass.BaseTypes.Add(new CodeTypeReference { BaseType = "DataObjectBase", Options = CodeTypeReferenceOptions.GenericTypeParameter });

产生该类声明:

public sealed partial class Refund<Refund> : DataObjectBase
 {
}

我究竟做错了什么?

解决方法:

我认为BaseType的以下字符串应该可以解决这个问题(未经测试):

"DataObjectBase`1[[Refund]]"

您可能需要提供退款的全名,至少包括程序集名称:

"DataObjectBase`1[[Refund, RefundAssembly]]"

然后,您应该删除行targetClass.TypeParameters.Add(…).

标签:type-parameter,codedom,c
来源: https://codeday.me/bug/20191210/2102238.html