当前位置:  开发笔记 > 编程语言 > 正文

为了生成这段代码,我需要编写什么编码?

如何解决《为了生成这段代码,我需要编写什么编码?》经验,为你挑选了1个好方法。

我需要这样做.

public class MyClass{

    private static IDictionary databaseAccessClasses
                              = new Dictionary();

    private static IDictionary DatabaseAccessClasses
    {
        get { return DataAccessFactory.databaseAccessClasses; }
        set { DataAccessFactory.databaseAccessClasses = value; }
    }

}

mmmmmmmm.. 6

使用以下代码:

CSharpCodeProvider codeProvider = new CSharpCodeProvider();
CodeCompileUnit compileUnit = new CodeCompileUnit();
CodeNamespace nameSpace = new CodeNamespace("xy");

compileUnit.Namespaces.Add(nameSpace);

CodeTypeDeclaration myClass = new CodeTypeDeclaration("MyClass");
nameSpace.Types.Add(myClass);
myClass.TypeAttributes = System.Reflection.TypeAttributes.Class | System.Reflection.TypeAttributes.Public;

CodeTypeReference dictionaryType = new CodeTypeReference("IDictionary", new CodeTypeReference(typeof(string)), new CodeTypeReference(typeof(Type)));

CodeMemberField myClass_databaseAccessClasses = new CodeMemberField(dictionaryType, "databaseAccessClasses");
myClass_databaseAccessClasses.Attributes = MemberAttributes.Static;
myClass.Members.Add(myClass_databaseAccessClasses);

CodeMemberProperty myClass_DatabaseAccessClasses = new CodeMemberProperty();
myClass_DatabaseAccessClasses.Name = "DatabaseAccessClasses";
myClass_DatabaseAccessClasses.Type = dictionaryType;
myClass_DatabaseAccessClasses.Attributes = MemberAttributes.Static;
myClass_DatabaseAccessClasses.GetStatements.Add(new CodeMethodReturnStatement(new CodeFieldReferenceExpression(new CodeTypeReferenceExpression(new CodeTypeReference("DataAccessFactory")), "databaseAccessClasses")));
myClass_DatabaseAccessClasses.SetStatements.Add(new CodeAssignStatement(new CodeFieldReferenceExpression(new CodeTypeReferenceExpression(new CodeTypeReference("DataAccessFactory")), "databaseAccessClasses"), new CodeArgumentReferenceExpression("value")));
myClass.Members.Add(myClass_DatabaseAccessClasses);

StringWriter writer = new StringWriter();
codeProvider.GenerateCodeFromCompileUnit(compileUnit, writer, new System.CodeDom.Compiler.CodeGeneratorOptions());
// writer.ToString() contains the C# code

吕迪格



1> mmmmmmmm..:

使用以下代码:

CSharpCodeProvider codeProvider = new CSharpCodeProvider();
CodeCompileUnit compileUnit = new CodeCompileUnit();
CodeNamespace nameSpace = new CodeNamespace("xy");

compileUnit.Namespaces.Add(nameSpace);

CodeTypeDeclaration myClass = new CodeTypeDeclaration("MyClass");
nameSpace.Types.Add(myClass);
myClass.TypeAttributes = System.Reflection.TypeAttributes.Class | System.Reflection.TypeAttributes.Public;

CodeTypeReference dictionaryType = new CodeTypeReference("IDictionary", new CodeTypeReference(typeof(string)), new CodeTypeReference(typeof(Type)));

CodeMemberField myClass_databaseAccessClasses = new CodeMemberField(dictionaryType, "databaseAccessClasses");
myClass_databaseAccessClasses.Attributes = MemberAttributes.Static;
myClass.Members.Add(myClass_databaseAccessClasses);

CodeMemberProperty myClass_DatabaseAccessClasses = new CodeMemberProperty();
myClass_DatabaseAccessClasses.Name = "DatabaseAccessClasses";
myClass_DatabaseAccessClasses.Type = dictionaryType;
myClass_DatabaseAccessClasses.Attributes = MemberAttributes.Static;
myClass_DatabaseAccessClasses.GetStatements.Add(new CodeMethodReturnStatement(new CodeFieldReferenceExpression(new CodeTypeReferenceExpression(new CodeTypeReference("DataAccessFactory")), "databaseAccessClasses")));
myClass_DatabaseAccessClasses.SetStatements.Add(new CodeAssignStatement(new CodeFieldReferenceExpression(new CodeTypeReferenceExpression(new CodeTypeReference("DataAccessFactory")), "databaseAccessClasses"), new CodeArgumentReferenceExpression("value")));
myClass.Members.Add(myClass_DatabaseAccessClasses);

StringWriter writer = new StringWriter();
codeProvider.GenerateCodeFromCompileUnit(compileUnit, writer, new System.CodeDom.Compiler.CodeGeneratorOptions());
// writer.ToString() contains the C# code

吕迪格

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有