gpt4 book ai didi

c# - 如何创建一个继承自另一个类并在 CodeDom 中传递类型参数的类?

转载 作者:行者123 更新时间:2023-11-30 16:36:03 26 4
gpt4 key购买 nike

这是我希望生成的类声明如下所示:

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]]"

您可能需要为 Refund 提供一个完全限定的名称,至少包括程序集名称:

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

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

关于c# - 如何创建一个继承自另一个类并在 CodeDom 中传递类型参数的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1348268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com