我编写了一些代码来从来自我们的 CMS 的 XML 模式生成 .NET 类型。这进展顺利,并产生了我所期待的结果。
现在我想自定义生成类型的默认(无参数)构造函数。我有一些看起来像的代码:
CodeNamespace codeNamespace = new CodeNamespace("MyNamespace");
// import type mappings from schema
// export type mappings into codeNamespace
CodeTypeDeclaration codeType = codeNamespace.Types.First();
至此,我可以成功修改codeType
;添加/删除属性、属性等。
但是,检查 的Members
属性codeType
表明尚未定义默认构造函数。当然我可以加一个;但是当我去写出代码字符串时(使用CSharpCodeProvider.GenerateCodeFromNamespace
),另一个默认构造函数被添加到输出中(在这种情况下,用于在从模式派生的字段上设置一些默认值)。
我要做的基本上是在默认构造函数中插入对方法的调用(我可以codeType
按照上面成功添加的方法)。
(如何)我可以处理这样一个事实,即当我写出代码字符串时,会插入一个默认构造函数Members
(之前集合中不存在该构造函数) ?