protected override ParamCodeTypeFactory HandleSignalArgument(IDLInterface idlIntf, IDLSignal idlSignal, IDLSignalArgument idlSignalArg) { ParamCodeTypeFactory signalArg = base.HandleSignalArgument(idlIntf, idlSignal, idlSignalArg); CodeTypeReference typerefArg = signalArg.paramtype.CodeType; string[] components = CodeBuilderCommon.GetSignalComponents(idlSignalArg.Name); string first = components[0]; components = Array.ConvertAll <string, string>(components, System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase); components[0] = first; string argFieldName = string.Join("", components); CodeFieldReferenceExpression fieldrefArg = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), argFieldName); CodeMemberField fieldArg = new CodeMemberField(typerefArg, argFieldName); fieldArg.CustomAttributes.Add(CodeBuilderCommon.attribDataMember); this.typeSignalArgs.Members.Add(fieldArg); CodeMemberProperty propArgField = new CodeMemberProperty(); propArgField.Attributes = MemberAttributes.Public | MemberAttributes.Final; propArgField.Type = typerefArg; propArgField.Name = argFieldName[0].ToString().ToUpper() + argFieldName.Substring(1); propArgField.GetStatements.Add(new CodeMethodReturnStatement(fieldrefArg)); this.typeSignalArgs.Members.Add(propArgField); this.constructorSignalArgs.Parameters.Add(new CodeParameterDeclarationExpression(typerefArg, argFieldName)); // * this.<signal_arg> = <signal_arg>; this.constructorSignalArgs.Statements.Add(new CodeAssignStatement(fieldrefArg, new CodeArgumentReferenceExpression(argFieldName))); return(signalArg); }