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

Ret() private method

private Ret ( ) : void
return void
        internal void Ret()
        {
            if (_codeGenTrace != CodeGenTrace.None)
                EmitSourceInstruction("Ret");
            _ilGen.Emit(OpCodes.Ret);
        }

Usage Example

コード例 #1
0
        internal System.Runtime.Serialization.CreateXmlSerializableDelegate GenerateCreateXmlSerializableDelegate()
        {
            Type          underlyingType           = base.UnderlyingType;
            CodeGenerator generator                = new CodeGenerator();
            bool          allowPrivateMemberAccess = this.RequiresMemberAccessForCreate(null);

            try
            {
                generator.BeginMethod("Create" + DataContract.GetClrTypeFullName(underlyingType), typeof(System.Runtime.Serialization.CreateXmlSerializableDelegate), allowPrivateMemberAccess);
            }
            catch (SecurityException exception)
            {
                if (!allowPrivateMemberAccess || !exception.PermissionType.Equals(typeof(ReflectionPermission)))
                {
                    throw;
                }
                this.RequiresMemberAccessForCreate(exception);
            }
            if (underlyingType.IsValueType)
            {
                LocalBuilder localBuilder = generator.DeclareLocal(underlyingType, underlyingType.Name + "Value");
                generator.Ldloca(localBuilder);
                generator.InitObj(underlyingType);
                generator.Ldloc(localBuilder);
            }
            else
            {
                generator.New(this.GetConstructor());
            }
            generator.ConvertValue(base.UnderlyingType, Globals.TypeOfIXmlSerializable);
            generator.Ret();
            return((System.Runtime.Serialization.CreateXmlSerializableDelegate)generator.EndMethod());
        }
All Usage Examples Of System.Runtime.Serialization.CodeGenerator::Ret