Boo.Lang.Runtime.SliceDispatcherFactory.CreateSetter C# (CSharp) Метод

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

private CreateSetter ( MemberInfo member ) : Dispatcher
member System.Reflection.MemberInfo
Результат Dispatcher
        private Dispatcher CreateSetter(MemberInfo member)
        {
            switch (member.MemberType)
            {
                case MemberTypes.Field:
                    {
                        FieldInfo field = (FieldInfo)member;
                        return
                            delegate(object o, object[] arguments) { return RuntimeServices.SetSlice(field.GetValue(o), "", arguments); };
                    }
                case MemberTypes.Property:
                    {
                        PropertyInfo property = (PropertyInfo)member;
                        if (property.GetIndexParameters().Length > 0)
                        {
                            MethodInfo setter = property.GetSetMethod(true);
                            if (null == setter) throw MissingField();
                            return EmitMethodDispatcher(setter);
                        }

                        return delegate(object o, object[] arguments)
                               	{
                               		return RuntimeServices.SetSlice(RuntimeServices.GetProperty(o, _name), "", arguments);
                               	};
                    }
                default:
                    {
                        throw MissingField();
                    }
            }
        }

Same methods

SliceDispatcherFactory::CreateSetter ( ) : Dispatcher