internal void GenerateMemberNames(DesignTable designTable, CodeDomProvider codeProvider, bool languageCaseInsensitive, ArrayList problemList)
 {
     this.languageCaseInsensitive = languageCaseInsensitive;
     this.validator = new MemberNameValidator(null, codeProvider, this.languageCaseInsensitive);
     this.AddReservedNames();
     this.ProcessMemberNames(designTable);
 }
コード例 #2
0
 internal void GenerateMemberNames(DesignTable designTable, CodeDomProvider codeProvider, bool languageCaseInsensitive, ArrayList problemList)
 {
     this.languageCaseInsensitive = languageCaseInsensitive;
     this.validator = new MemberNameValidator(null, codeProvider, this.languageCaseInsensitive);
     this.AddReservedNames();
     this.ProcessMemberNames(designTable);
 }
 private string CreateAdaptersNamespace(string generatorDataSetName)
 {
     if (generatorDataSetName.StartsWith("[", StringComparison.Ordinal) && generatorDataSetName.EndsWith("]", StringComparison.Ordinal))
     {
         generatorDataSetName = generatorDataSetName.Substring(1, generatorDataSetName.Length - 2);
     }
     return(MemberNameValidator.GenerateIdName(generatorDataSetName + "TableAdapters", this.CodeProvider, false));
 }
コード例 #4
0
 private void AddShouldSerializeSingleTableMethods(CodeTypeDeclaration dataSourceClass)
 {
     foreach (DesignTable table in this.codeGenerator.TableHandler.Tables)
     {
         string generatorTablePropName = table.GeneratorTablePropName;
         if ((this.codeGenerator.CodeProvider.IsValidIdentifier(generatorTablePropName) && generatorTablePropName.StartsWith("[", StringComparison.Ordinal)) && generatorTablePropName.EndsWith("]", StringComparison.Ordinal))
         {
             generatorTablePropName = generatorTablePropName.Substring(1, generatorTablePropName.Length - 2);
         }
         string           name   = MemberNameValidator.GenerateIdName("ShouldSerialize" + generatorTablePropName, this.codeGenerator.CodeProvider, false);
         CodeMemberMethod method = CodeGenHelper.MethodDecl(CodeGenHelper.GlobalType(typeof(bool)), name, MemberAttributes.Private);
         method.Statements.Add(CodeGenHelper.Return(CodeGenHelper.Primitive(false)));
         dataSourceClass.Members.Add(method);
     }
 }
コード例 #5
0
        internal static bool SupportsMultipleNamespaces(CodeDomProvider codeProvider)
        {
            string          name        = MemberNameValidator.GenerateIdName("TestNs1", codeProvider, false);
            string          str2        = MemberNameValidator.GenerateIdName("TestNs2", codeProvider, false);
            CodeNamespace   namespace2  = new CodeNamespace(name);
            CodeNamespace   namespace3  = new CodeNamespace(str2);
            CodeCompileUnit compileUnit = new CodeCompileUnit();

            compileUnit.Namespaces.Add(namespace2);
            compileUnit.Namespaces.Add(namespace3);
            StringWriter writer = new StringWriter(CultureInfo.CurrentCulture);

            codeProvider.GenerateCodeFromCompileUnit(compileUnit, writer, new CodeGeneratorOptions());
            string str3 = writer.GetStringBuilder().ToString();

            return(str3.Contains(name) && str3.Contains(str2));
        }
コード例 #6
0
        internal static string FixIdName(string inVarName)
        {
            if (lookupIdentifiers == null)
            {
                InitLookupIdentifiers();
            }
            string str = (string)lookupIdentifiers[inVarName];

            if (str == null)
            {
                str = MemberNameValidator.GenerateIdName(inVarName, codeProvider, false);
                while (lookupIdentifiers.ContainsValue(str))
                {
                    str = '_' + str;
                }
                lookupIdentifiers[inVarName] = str;
            }
            return(str);
        }
コード例 #7
0
 internal void GenerateMemberNames(DesignDataSource dataSource, CodeDomProvider codeProvider, bool languageCaseInsensitive, ArrayList problemList)
 {
     this.languageCaseInsensitive = languageCaseInsensitive;
     this.validator = new MemberNameValidator(new string[] { tablesPropertyName, relationsPropertyName }, codeProvider, this.languageCaseInsensitive);
     this.ProcessMemberNames(dataSource);
 }
コード例 #8
0
 internal GenericNameHandler(ICollection initialNameSet, CodeDomProvider codeProvider)
 {
     this.validator = new MemberNameValidator(initialNameSet, codeProvider, true);
     this.names     = new Hashtable(StringComparer.Ordinal);
 }
コード例 #9
0
        internal void AddRowColumnProperties(CodeTypeDeclaration rowClass)
        {
            bool   flag = false;
            string generatorRowClassName = this.codeGenerator.TableHandler.Tables[this.table.TableName].GeneratorRowClassName;
            string generatorTableVarName = this.codeGenerator.TableHandler.Tables[this.table.TableName].GeneratorTableVarName;

            foreach (DesignColumn column in this.columns)
            {
                CodeExpression     expression;
                CodeExpression     expression2;
                DataColumn         dataColumn = column.DataColumn;
                Type               dataType   = dataColumn.DataType;
                string             generatorColumnPropNameInRow   = column.GeneratorColumnPropNameInRow;
                string             generatorColumnPropNameInTable = column.GeneratorColumnPropNameInTable;
                GenericNameHandler handler  = new GenericNameHandler(new string[] { generatorColumnPropNameInRow }, this.codeGenerator.CodeProvider);
                CodeMemberProperty property = CodeGenHelper.PropertyDecl(CodeGenHelper.Type(dataType), generatorColumnPropNameInRow, MemberAttributes.Public | MemberAttributes.Final);
                CodeStatement      tryStmnt = CodeGenHelper.Return(CodeGenHelper.Cast(CodeGenHelper.GlobalType(dataType), CodeGenHelper.Indexer(CodeGenHelper.This(), CodeGenHelper.Property(CodeGenHelper.Field(CodeGenHelper.This(), generatorTableVarName), generatorColumnPropNameInTable))));
                if (!dataColumn.AllowDBNull)
                {
                    goto Label_0440;
                }
                string str5 = (string)dataColumn.ExtendedProperties["nullValue"];
                switch (str5)
                {
                case null:
                case "_throw":
                    tryStmnt = CodeGenHelper.Try(tryStmnt, CodeGenHelper.Catch(CodeGenHelper.GlobalType(typeof(InvalidCastException)), handler.AddNameToList("e"), CodeGenHelper.Throw(CodeGenHelper.GlobalType(typeof(StrongTypingException)), System.Design.SR.GetString("CG_ColumnIsDBNull", new object[] { dataColumn.ColumnName, this.table.TableName }), handler.GetNameFromList("e"))));
                    goto Label_0440;

                default:
                {
                    expression = null;
                    switch (str5)
                    {
                    case "_null":
                        if (dataColumn.DataType.IsSubclassOf(typeof(System.ValueType)))
                        {
                            this.codeGenerator.ProblemList.Add(new DSGeneratorProblem(System.Design.SR.GetString("CG_TypeCantBeNull", new object[] { dataColumn.ColumnName, dataColumn.DataType.Name }), ProblemSeverity.NonFatalError, column));
                            continue;
                        }
                        expression2 = CodeGenHelper.Primitive(null);
                        goto Label_03AE;

                    case "_empty":
                        if (dataColumn.DataType == typeof(string))
                        {
                            expression2 = CodeGenHelper.Property(CodeGenHelper.TypeExpr(CodeGenHelper.GlobalType(dataColumn.DataType)), "Empty");
                        }
                        else
                        {
                            expression2 = CodeGenHelper.Field(CodeGenHelper.TypeExpr(CodeGenHelper.Type(generatorRowClassName)), generatorColumnPropNameInRow + "_nullValue");
                            ConstructorInfo constructor = dataColumn.DataType.GetConstructor(new Type[] { typeof(string) });
                            if (constructor == null)
                            {
                                this.codeGenerator.ProblemList.Add(new DSGeneratorProblem(System.Design.SR.GetString("CG_NoCtor0", new object[] { dataColumn.ColumnName, dataColumn.DataType.Name }), ProblemSeverity.NonFatalError, column));
                                continue;
                            }
                            constructor.Invoke(new object[0]);
                            expression = CodeGenHelper.New(CodeGenHelper.Type(dataColumn.DataType), new CodeExpression[0]);
                        }
                        goto Label_03AE;
                    }
                    if (!flag)
                    {
                        this.table.NewRow();
                        flag = true;
                    }
                    object             valueObj = this.codeGenerator.RowHandler.RowGenerator.ConvertXmlToObject.Invoke(dataColumn, new object[] { str5 });
                    DSGeneratorProblem problem  = CodeGenHelper.GenerateValueExprAndFieldInit(column, valueObj, str5, generatorRowClassName, generatorColumnPropNameInRow + "_nullValue", out expression2, out expression);
                    if (problem != null)
                    {
                        this.codeGenerator.ProblemList.Add(problem);
                        continue;
                    }
                    break;
                }
                }
                Label_03AE :;
                tryStmnt = CodeGenHelper.If(CodeGenHelper.MethodCall(CodeGenHelper.This(), "Is" + generatorColumnPropNameInRow + "Null"), new CodeStatement[] { CodeGenHelper.Return(expression2) }, new CodeStatement[] { tryStmnt });
                if (expression != null)
                {
                    CodeMemberField field = CodeGenHelper.FieldDecl(CodeGenHelper.Type(dataColumn.DataType.FullName), generatorColumnPropNameInRow + "_nullValue");
                    field.Attributes     = MemberAttributes.Private | MemberAttributes.Static;
                    field.InitExpression = expression;
                    rowClass.Members.Add(field);
                }
Label_0440:
                property.GetStatements.Add(tryStmnt);
                property.SetStatements.Add(CodeGenHelper.Assign(CodeGenHelper.Indexer(CodeGenHelper.This(), CodeGenHelper.Property(CodeGenHelper.Field(CodeGenHelper.This(), generatorTableVarName), generatorColumnPropNameInTable)), CodeGenHelper.Value()));
                rowClass.Members.Add(property);
                if (dataColumn.AllowDBNull)
                {
                    string           name   = MemberNameValidator.GenerateIdName("Is" + generatorColumnPropNameInRow + "Null", this.codeGenerator.CodeProvider, false);
                    CodeMemberMethod method = CodeGenHelper.MethodDecl(CodeGenHelper.GlobalType(typeof(bool)), name, MemberAttributes.Public | MemberAttributes.Final);
                    method.Statements.Add(CodeGenHelper.Return(CodeGenHelper.MethodCall(CodeGenHelper.This(), "IsNull", CodeGenHelper.Property(CodeGenHelper.Field(CodeGenHelper.This(), generatorTableVarName), generatorColumnPropNameInTable))));
                    rowClass.Members.Add(method);
                    name = MemberNameValidator.GenerateIdName("Set" + generatorColumnPropNameInRow + "Null", this.codeGenerator.CodeProvider, false);
                    CodeMemberMethod method2 = CodeGenHelper.MethodDecl(CodeGenHelper.GlobalType(typeof(void)), name, MemberAttributes.Public | MemberAttributes.Final);
                    method2.Statements.Add(CodeGenHelper.Assign(CodeGenHelper.Indexer(CodeGenHelper.This(), CodeGenHelper.Property(CodeGenHelper.Field(CodeGenHelper.This(), generatorTableVarName), generatorColumnPropNameInTable)), CodeGenHelper.Field(CodeGenHelper.GlobalTypeExpr(typeof(Convert)), "DBNull")));
                    rowClass.Members.Add(method2);
                }
            }
        }
コード例 #10
0
 internal void GenerateMemberNames(DesignDataSource dataSource, CodeDomProvider codeProvider, bool languageCaseInsensitive, ArrayList problemList)
 {
     this.languageCaseInsensitive = languageCaseInsensitive;
     this.validator = new MemberNameValidator(new string[] { tablesPropertyName, relationsPropertyName }, codeProvider, this.languageCaseInsensitive);
     this.ProcessMemberNames(dataSource);
 }
 internal GenericNameHandler(ICollection initialNameSet, CodeDomProvider codeProvider)
 {
     this.validator = new MemberNameValidator(initialNameSet, codeProvider, true);
     this.names = new Hashtable(StringComparer.Ordinal);
 }