System.Runtime.Serialization.XmlFormatReaderGenerator.XmlFormatReaderGenerator.CriticalHelper.WrapNullableObject C# (CSharp) Method

WrapNullableObject() private method

private WrapNullableObject ( LocalBuilder innerValue, LocalBuilder outerValue, int nullables ) : void
innerValue System.Reflection.Emit.LocalBuilder
outerValue System.Reflection.Emit.LocalBuilder
nullables int
return void
            private void WrapNullableObject(LocalBuilder innerValue, LocalBuilder outerValue, int nullables)
            {
                Type innerType = innerValue.LocalType, outerType = outerValue.LocalType;
                _ilg.LoadAddress(outerValue);
                _ilg.Load(innerValue);
                for (int i = 1; i < nullables; i++)
                {
                    Type type = Globals.TypeOfNullable.MakeGenericType(innerType);
                    _ilg.New(type.GetConstructor(new Type[] { innerType }));
                    innerType = type;
                }
                _ilg.Call(outerType.GetConstructor(new Type[] { innerType }));
            }