System.Xml.Serialization.XmlSerializationILGen.GeneratePublicMethods C# (CSharp) Method

GeneratePublicMethods() private method

private GeneratePublicMethods ( string privateName, string publicName, string methods, XmlMapping xmlMappings, TypeBuilder serializerContractTypeBuilder ) : FieldBuilder
privateName string
publicName string
methods string
xmlMappings XmlMapping
serializerContractTypeBuilder System.Reflection.Emit.TypeBuilder
return System.Reflection.Emit.FieldBuilder
        internal FieldBuilder GeneratePublicMethods(string privateName, string publicName, string[] methods, XmlMapping[] xmlMappings, TypeBuilder serializerContractTypeBuilder)
        {
            FieldBuilder fieldBuilder = GenerateHashtableGetBegin(privateName, publicName, serializerContractTypeBuilder);
            if (methods != null && methods.Length != 0 && xmlMappings != null && xmlMappings.Length == methods.Length)
            {
                MethodInfo Hashtable_set_Item = typeof(Hashtable).GetMethod(
                    "set_Item",
                    new Type[] { typeof(Object), typeof(Object) }
                    );
                for (int i = 0; i < methods.Length; i++)
                {
                    if (methods[i] == null)
                        continue;
                    ilg.Ldloc(typeof(Hashtable), "_tmp");
                    ilg.Ldstr(GetCSharpString(xmlMappings[i].Key));
                    ilg.Ldstr(GetCSharpString(methods[i]));
                    ilg.Call(Hashtable_set_Item);
                }
            }
            GenerateHashtableGetEnd(fieldBuilder);
            return fieldBuilder;
        }