MongoDB.Bson.Serialization.BsonMemberMap.GetPropertySetter C# (CSharp) Метод

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

private GetPropertySetter ( ) : object>.Action
Результат object>.Action
        private Action<object, object> GetPropertySetter()
        {
            var propertyInfo = (PropertyInfo)_memberInfo;
            var setMethodInfo = propertyInfo.GetSetMethod(true);
            if (IsReadOnly)
            {
                var message = string.Format(
                    "The property '{0} {1}' of class '{2}' has no 'set' accessor. To avoid this exception, call IsReadOnly to ensure that setting a value is allowed.",
                    propertyInfo.PropertyType.FullName, propertyInfo.Name, propertyInfo.DeclaringType.FullName);
                throw new BsonSerializationException(message);
            }

            // lambdaExpression = (obj, value) => ((TClass) obj).SetMethod((TMember) value)
            var objParameter = Expression.Parameter(typeof(object), "obj");
            var valueParameter = Expression.Parameter(typeof(object), "value");
            var lambdaExpression = Expression.Lambda<Action<object, object>>(
                Expression.Call(
                    Expression.Convert(objParameter, _memberInfo.DeclaringType),
                    setMethodInfo,
                    Expression.Convert(valueParameter, _memberType)
                ),
                objParameter,
                valueParameter
            );

            return lambdaExpression.Compile();
        }