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

Call() private method

private Call ( object thisObj, MethodInfo methodInfo, object param1, object param2, object param3, object param4, object param5 ) : void
thisObj object
methodInfo System.Reflection.MethodInfo
param1 object
param2 object
param3 object
param4 object
param5 object
return void
        internal void Call(object thisObj, MethodInfo methodInfo, object param1, object param2, object param3, object param4, object param5)
        {
            VerifyParameterCount(methodInfo, 5);
            LoadThis(thisObj, methodInfo);
            LoadParam(param1, 1, methodInfo);
            LoadParam(param2, 2, methodInfo);
            LoadParam(param3, 3, methodInfo);
            LoadParam(param4, 4, methodInfo);
            LoadParam(param5, 5, methodInfo);
            Call(methodInfo);
        }

Same methods

CodeGenerator::Call ( ConstructorInfo ctor ) : void
CodeGenerator::Call ( MethodInfo methodInfo ) : void
CodeGenerator::Call ( object thisObj, MethodInfo methodInfo ) : void
CodeGenerator::Call ( object thisObj, MethodInfo methodInfo, object param1 ) : void
CodeGenerator::Call ( object thisObj, MethodInfo methodInfo, object param1, object param2 ) : void
CodeGenerator::Call ( object thisObj, MethodInfo methodInfo, object param1, object param2, object param3 ) : void
CodeGenerator::Call ( object thisObj, MethodInfo methodInfo, object param1, object param2, object param3, object param4 ) : void
CodeGenerator::Call ( object thisObj, MethodInfo methodInfo, object param1, object param2, object param3, object param4, object param5, object param6 ) : void

Usage Example

コード例 #1
0
            public XmlFormatClassReaderDelegate GenerateClassReader(ClassDataContract classContract)
            {
                _ilg = new CodeGenerator();
                bool memberAccessFlag = classContract.RequiresMemberAccessForRead(null);

                try
                {
                    _ilg.BeginMethod("Read" + classContract.StableName.Name + "FromXml", Globals.TypeOfXmlFormatClassReaderDelegate, memberAccessFlag);
                }
                catch (SecurityException securityException)
                {
                    if (memberAccessFlag)
                    {
                        classContract.RequiresMemberAccessForRead(securityException);
                    }
                    else
                    {
                        throw;
                    }
                }

                InitArgs();
                CreateObject(classContract);
                _ilg.Call(_contextArg, XmlFormatGeneratorStatics.AddNewObjectMethod, _objectLocal);
                InvokeOnDeserializing(classContract);
                LocalBuilder objectId = null;

                ReadClass(classContract);

                InvokeOnDeserialized(classContract);
                if (objectId == null)
                {
                    _ilg.Load(_objectLocal);

                    // Do a conversion back from DateTimeOffsetAdapter to DateTimeOffset after deserialization.
                    // DateTimeOffsetAdapter is used here for deserialization purposes to bypass the ISerializable implementation
                    // on DateTimeOffset; which does not work in partial trust.

                    if (classContract.UnderlyingType == Globals.TypeOfDateTimeOffsetAdapter)
                    {
                        _ilg.ConvertValue(_objectLocal.LocalType, Globals.TypeOfDateTimeOffsetAdapter);
                        _ilg.Call(XmlFormatGeneratorStatics.GetDateTimeOffsetMethod);
                        _ilg.ConvertValue(Globals.TypeOfDateTimeOffset, _ilg.CurrentMethod.ReturnType);
                    }
                    //Copy the KeyValuePairAdapter<K,T> to a KeyValuePair<K,T>.
                    else if (classContract.IsKeyValuePairAdapter)
                    {
                        _ilg.Call(classContract.GetKeyValuePairMethodInfo);
                        _ilg.ConvertValue(Globals.TypeOfKeyValuePair.MakeGenericType(classContract.KeyValuePairGenericArguments), _ilg.CurrentMethod.ReturnType);
                    }
                    else
                    {
                        _ilg.ConvertValue(_objectLocal.LocalType, _ilg.CurrentMethod.ReturnType);
                    }
                }
                return((XmlFormatClassReaderDelegate)_ilg.EndMethod());
            }
All Usage Examples Of System.Runtime.Serialization.CodeGenerator::Call