генератор кода
От: _Umka  
Дата: 25.02.05 12:41
Оценка:
Как затсавть генератор кода создавать код следующего типа


using System;
using System.Collections;
using DevExpress.Xpo;

namespace CBO
{
    public class Class : XPObject
    {
    }
 
}



а не

namespace CBO
{
    using System;
    using System.Collections;
    using DevExpress.Xpo;
    
    
    public class Class : XPObject
    {
    }
 
}


Мой код для генерации кода:


        public CodeGeneratorOptions CodeGeneratorOptions
        {
            get
            {
                CodeGeneratorOptions options = new CodeGeneratorOptions();
                options.BlankLinesBetweenMembers = true;
                options.BracingStyle = @"C";
                options.ElseOnClosing = true;
                return options;
            }
        }

        private void CreateFileBody(StreamWriter sw, BOClass BO)
        {
            try
            {
                CodeDomProvider codeProvider = new CSharpCodeProvider();
                ICodeGenerator codeGenerator =  codeProvider.CreateGenerator();
                
                CodeCompileUnit ccu = new CodeCompileUnit();

                CodeNamespace codeNamespace = new CodeNamespace(_NameSpaceName);
                CodeNamespaceCollection cnc = new CodeNamespaceCollection();
    
                codeNamespace.Imports.Add(new CodeNamespaceImport("System"));
                codeNamespace.Imports.Add(new CodeNamespaceImport("System.Collections"));
                codeNamespace.Imports.Add(new CodeNamespaceImport("DevExpress.Xpo"));

                CodeTypeDeclaration newclass = new CodeTypeDeclaration(BO.Name);
                newclass.Attributes = MemberAttributes.Public;
                newclass.BaseTypes.Add(_DefaultBaseClass);
                newclass.IsClass = true;
                

                
                codeNamespace.Types.Add(newclass);
                ccu.Namespaces.Add(codeNamespace);

                codeGenerator.GenerateCodeFromCompileUnit(ccu, sw, this.CodeGeneratorOptions);
            }
            catch (Exception E)
            {
                ExceptionManager.Publish(E);
            }
        }
--
То, что вы уникальны еще не значит, что от вас есть толк
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.