BTDB.EventStore2Layer.EventSerializer.BuildComplexSaver C# (CSharp) Метод

BuildComplexSaver() приватный Метод

private BuildComplexSaver ( ITypeDescriptor descriptor ) : Action
descriptor ITypeDescriptor
Результат Action
        Action<AbstractBufferedWriter, ITypeBinarySerializerContext, object> BuildComplexSaver(ITypeDescriptor descriptor)
        {
            var method = ILBuilder.Instance.NewMethod<Action<AbstractBufferedWriter, ITypeBinarySerializerContext, object>>(descriptor.Name + "Saver");
            var il = method.Generator;
            descriptor.GenerateSave(il, ilgen => ilgen.Ldarg(0), ilgen => ilgen.Ldarg(1), ilgen =>
            {
                ilgen.Ldarg(2);
                var type = descriptor.GetPreferedType();
                if (type != typeof(object))
                {
                    ilgen.Castclass(type);
                }
            }, descriptor.GetPreferedType());
            il.Ret();
            return method.Create();
        }