如何创建一个类继承自另一个并传入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 { }

我究竟做错了什么?

--------------解决方案-------------

我认为以下字符串作为基本类型应该做的伎俩(未经测试):

"DataObjectBase`1[[Refund]]"

这可能是你需要为提供一个完全合格的域名Refund ,至少包括程序集的名称:

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

你应该再取出线targetClass.TypeParameters.Add(...)

如果您使用表达式的CodeDOM可能是

var cls = Define.Class("Refund",
TypeAttributes.Public | TypeAttributes.Sealed, true)
.Inherits(CodeDom.TypeRef("DataObjectBase","Refund"))

分类:C# 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.357 (s). 10 q(s)