示例#1
0
        private static void GenerateEnumFile(EnumGenerationParams pParams, MessageDefinitions.Data.Enum enumeration, TypeInfo typeInfo, CodeGeneratorOptions options, CodeDomProvider codeProvider)
        {
            string          filename = TypeInfoHelper.GetFilename(typeInfo);
            String          filePath = Path.Combine(pParams.OutputPath, filename);
            CodeCompileUnit unit     = EnumGeneratorHelper.CreateCodeCompileUnit(typeInfo, enumeration);

            codeProvider.GenerateCodeFromCompileUnit(unit, options, filePath);
        }
示例#2
0
        private static void GenerateMessageClassFile(MessageGenerationParams pParams, MessageDefinitions.Data.Message message, CodeGeneratorOptions options, CodeDomProvider codeProvider, IDictionary <MessageDefinitions.Data.Enum, TypeInfo> enumTypeInfoByName)
        {
            TypeInfo        typeInfo = TypeInfoHelper.GetTypeInfo(pParams.Namespace, message);
            string          filename = TypeInfoHelper.GetFilename(typeInfo);
            String          filePath = Path.Combine(pParams.OutputPath, filename);
            CodeCompileUnit unit     = MessageGeneratorHelper.CreateCodeCompileUnit(typeInfo, message, pParams.BaseClassTypeInfo, pParams.MessageTypeEnumTypeInfo, enumTypeInfoByName);

            codeProvider.GenerateCodeFromCompileUnit(unit, options, filePath);
        }
示例#3
0
        private static void GenerateMessageTypeEnum(CodeDomProvider codeProvider, CodeGeneratorOptions options, TypeInfo messageTypeEnumTypeInfo, string outputPath, IEnumerable <Message> messages)
        {
            MessageTypeEnumGenerationParams typeEnumGenerationParams = new MessageTypeEnumGenerationParams();
            string messageTypeEnumFilename = TypeInfoHelper.GetFilename(messageTypeEnumTypeInfo);

            typeEnumGenerationParams.OutputFilePath = Path.Combine(outputPath, messageTypeEnumFilename);
            typeEnumGenerationParams.TypeInfo       = messageTypeEnumTypeInfo;

            GenerateMessageTypeEnum(codeProvider, options, typeEnumGenerationParams, messages);
        }
示例#4
0
        private static void GenerateCrcExtraProvider(CodeDomProvider codeProvider, CodeGeneratorOptions options, TypeInfo crcExtraProviderClassTypeInfo, IEnumerable <Message> messages, string outputPath, TypeInfo messageTypeEnumTypeInfo)
        {
            CrcExtraProviderGenerationParams messageFactoryGenerationParams = new CrcExtraProviderGenerationParams();
            string filename = TypeInfoHelper.GetFilename(crcExtraProviderClassTypeInfo);

            messageFactoryGenerationParams.OutputFilePath          = Path.Combine(outputPath, filename);
            messageFactoryGenerationParams.TypeInfo                = crcExtraProviderClassTypeInfo;
            messageFactoryGenerationParams.MessageTypeEnumTypeInfo = messageTypeEnumTypeInfo;

            GenerateCrcExtraProvider(codeProvider, options, messageFactoryGenerationParams, messages);
        }
示例#5
0
        private static void GenerateMessageFactory(CodeDomProvider codeProvider, CodeGeneratorOptions options, TypeInfo serializerFactoryClassTypeInfo, IEnumerable <Message> messages, string outputPath, TypeInfo messageTypeEnumTypeInfo, TypeInfo messageInterfaceTypeInfo)
        {
            MessageFactoryGenerationParams messageFactoryGenerationParams = new MessageFactoryGenerationParams();
            string factoryFilename = TypeInfoHelper.GetFilename(serializerFactoryClassTypeInfo);

            messageFactoryGenerationParams.OutputFilePath           = Path.Combine(outputPath, factoryFilename);
            messageFactoryGenerationParams.TypeInfo                 = serializerFactoryClassTypeInfo;
            messageFactoryGenerationParams.CommonMessagesNamespace  = ConstantHelper.Namespaces.Root_Messages_Common;
            messageFactoryGenerationParams.MessageTypeEnumTypeInfo  = messageTypeEnumTypeInfo;
            messageFactoryGenerationParams.MessageInterfaceTypeInfo = messageInterfaceTypeInfo;

            GenerateMessageFactory(codeProvider, options, messageFactoryGenerationParams, messages);
        }
示例#6
0
        private static void GenerateSerializerClassFile(SerializerGenerationParams pParams, Message message, CodeGeneratorOptions options, CodeDomProvider codeProvider)
        {
            string serializerClassName = NameHelper.GetSerializerClassName(message);

            TypeInfo typeInfo = new TypeInfo()
            {
                Name      = serializerClassName,
                Namespace = pParams.Namespace
            };

            string          filename = TypeInfoHelper.GetFilename(typeInfo);
            String          filePath = Path.Combine(pParams.OutputPath, filename);
            CodeCompileUnit unit     = SerializerGeneratorHelper.CreateCodeCompileUnit(typeInfo, message, pParams.SerializerInterfaceTypeInfo, pParams.BaseClassTypeInfo, pParams.MessagesNamespace);

            codeProvider.GenerateCodeFromCompileUnit(unit, options, filePath);
        }