System.Runtime.Serialization.CodeGenerator.BeginMethod C# (CSharp) Method

BeginMethod() private method

private BeginMethod ( Type returnType, string methodName, Type argTypes, bool allowPrivateMemberAccess ) : void
returnType System.Type
methodName string
argTypes System.Type
allowPrivateMemberAccess bool
return void
        private void BeginMethod(Type returnType, string methodName, Type[] argTypes, bool allowPrivateMemberAccess)
        {
#if USE_REFEMIT
            string typeName = "Type" + (typeCounter++);
            InitAssemblyBuilder(typeName + "." + methodName);
            this.typeBuilder = moduleBuilder.DefineType(typeName, TypeAttributes.Public);
            this.methodBuilder = typeBuilder.DefineMethod(methodName, MethodAttributes.Public|MethodAttributes.Static, returnType, argTypes);
            this.ilGen = this.methodBuilder.GetILGenerator();
#else
            _dynamicMethod = new DynamicMethod(methodName, returnType, argTypes, SerializationModule, allowPrivateMemberAccess);

            _ilGen = _dynamicMethod.GetILGenerator();
#endif

            InitILGeneration(methodName, argTypes);
        }

Same methods

CodeGenerator::BeginMethod ( DynamicMethod dynamicMethod, Type delegateType, string methodName, Type argTypes, bool allowPrivateMemberAccess ) : void
CodeGenerator::BeginMethod ( string methodName, Type delegateType, bool allowPrivateMemberAccess ) : void

Usage Example

コード例 #1
0
            private CodeGenerator GenerateCollectionReaderHelper(CollectionDataContract collectionContract, bool isGetOnlyCollection)
            {
                _ilg = new CodeGenerator();
                bool memberAccessFlag = collectionContract.RequiresMemberAccessForRead(null);

                try
                {
                    if (isGetOnlyCollection)
                    {
                        _ilg.BeginMethod("Read" + collectionContract.StableName.Name + "FromXml" + "IsGetOnly", Globals.TypeOfXmlFormatGetOnlyCollectionReaderDelegate, memberAccessFlag);
                    }
                    else
                    {
                        _ilg.BeginMethod("Read" + collectionContract.StableName.Name + "FromXml" + string.Empty, Globals.TypeOfXmlFormatCollectionReaderDelegate, memberAccessFlag);
                    }
                }
                catch (SecurityException securityException)
                {
                    if (memberAccessFlag)
                    {
                        collectionContract.RequiresMemberAccessForRead(securityException);
                    }
                    else
                    {
                        throw;
                    }
                }
                InitArgs();
                _collectionContractArg = _ilg.GetArg(4);
                return(_ilg);
            }
All Usage Examples Of System.Runtime.Serialization.CodeGenerator::BeginMethod