public virtual IMemberDescriptor FindDescriptor(IReflectionExtensionPoint extensionPoint, string memberName,
                                                        BindingContract contract)
        {
            var mi = extensionPoint.ExtendedType.FindMemberInfo(memberName, contract);

            return(mi == null ? null : GetDescriptor(mi));
        }
        public virtual IValueMemberDescriptor GetValueDescriptor(IReflectionExtensionPoint extensionPoint,
                                                                 string memberName)
        {
            var descriptor = FindValueDescriptor(extensionPoint, memberName);

            return(descriptor.Validation().Found());
        }
        public virtual IMemberDescriptor GetDescriptor(IReflectionExtensionPoint extensionPoint)
        {
#if !WINDOWS_UWP
            return(GetDescriptor(extensionPoint.ExtendedType));
#else
            return(GetDescriptor(extensionPoint.ExtendedType.GetTypeInfo()));
#endif
        }
        public virtual T Get <T>(IReflectionExtensionPoint extensionPoint,
                                 IEnumerable <IValueMemberDescriptor> descriptors)
        {
            var value = extensionPoint.ExtendedValue;

            descriptors.ForEach(item => value = item.GetValue(value));

            return((T)value);
        }
        public virtual void Set <T>(IReflectionExtensionPoint extensionPoint,
                                    IEnumerable <IValueMemberDescriptor> descriptors, T value)
        {
            var allButLast = descriptors.Take(descriptors.Count() - 1);

            var last = descriptors.Last();

            var currentValue = extensionPoint.Get(allButLast);

            currentValue.Reflection().Set(last.MemberInfo.Name, value);
        }
        public virtual IEnumerable <IMemberDescriptor> GetDescriptors(IReflectionExtensionPoint extensionPoint,
                                                                      IEnumerable <string> memberNames)
        {
            IMemberDescriptor descriptor = null;

            foreach (var memberName in memberNames)
            {
                descriptor = descriptor == null
                                 ? FindDescriptor(extensionPoint, memberName)
                                 : FindDescriptor(descriptor, memberName);

                yield return(descriptor);
            }
        }
示例#7
0
 public static T Get <T, U>(this IReflectionExtensionPoint <U> extensionPoint, string memberName)
 {
     return(Extensions.Get <T>(extensionPoint, memberName));
 }
示例#8
0
 public static object Get(this IReflectionExtensionPoint extensionPoint, string memberName)
 {
     return(Extensions.Get(extensionPoint, memberName));
 }
示例#9
0
 public static IMemberDescriptor FindDescriptor(this IReflectionExtensionPoint extensionPoint, string memberName,
                                                BindingContract contract)
 {
     return(Extensions.FindDescriptor(extensionPoint, memberName, contract));
 }
 public virtual object Get(IReflectionExtensionPoint extensionPoint, IEnumerable <string> memberNames)
 {
     return(Get <object>(extensionPoint, memberNames));
 }
示例#11
0
 public static IMemberDescriptor FindDescriptor(this IReflectionExtensionPoint extensionPoint, string memberName)
 {
     return(Extensions.FindDescriptor(extensionPoint, memberName));
 }
示例#12
0
 public static object Get(this IReflectionExtensionPoint extensionPoint,
                          IEnumerable <IValueMemberDescriptor> descriptors)
 {
     return(Extensions.Get(extensionPoint, descriptors));
 }
示例#13
0
 public static void Set <T>(this IReflectionExtensionPoint extensionPoint, string memberName, T value)
 {
     Extensions.Set(extensionPoint, memberName, value);
 }
 public virtual IEnumerable <IValueMemberDescriptor> GetValueDescriptors(IReflectionExtensionPoint extensionPoint,
                                                                         IEnumerable <string> memberNames)
 {
     return(GetDescriptors(extensionPoint, memberNames).Cast <IValueMemberDescriptor>());
 }
示例#15
0
 public static void Set <T, U>(this IReflectionExtensionPoint <U> extensionPoint,
                               IEnumerable <IValueMemberDescriptor> descriptors, T value)
 {
     Extensions.Set(extensionPoint, descriptors, value);
 }
 public virtual void Set <T>(IReflectionExtensionPoint extensionPoint, IEnumerable <string> memberNames, T value)
 {
     Set(extensionPoint, GetDescriptors(extensionPoint, memberNames).Cast <IValueMemberDescriptor>(), value);
 }
 public virtual IMemberDescriptor GetDescriptor <TArg1, TResult>(IReflectionExtensionPoint <TArg1> extensionPoint, Expression <Func <TArg1, TResult> > func)
 {
     return(GetMemberInfo((LambdaExpression)func));
 }
 public virtual void Set <T>(IReflectionExtensionPoint extensionPoint, string memberName, T value)
 {
     FindValueDescriptor(extensionPoint, memberName).SetValue(extensionPoint.ExtendedValue, value);
 }
 public virtual object Get(IReflectionExtensionPoint extensionPoint, string memberName)
 {
     return(Get <object>(extensionPoint, memberName));
 }
 public virtual object Get(IReflectionExtensionPoint extensionPoint,
                           IEnumerable <IValueMemberDescriptor> descriptors)
 {
     return(Get <object>(extensionPoint, descriptors));
 }
示例#21
0
 public static object Get(this IReflectionExtensionPoint extensionPoint, IEnumerable <string> memberNames)
 {
     return(Extensions.Get(extensionPoint, memberNames));
 }
 public virtual IMemberDescriptor FindDescriptor(IReflectionExtensionPoint extensionPoint, string memberName)
 {
     return(FindDescriptor(extensionPoint, memberName, BindingContract.Default));
 }
示例#23
0
 public static T Get <T, U>(this IReflectionExtensionPoint <U> extensionPoint, IEnumerable <string> memberNames)
 {
     return(Extensions.Get <T>(extensionPoint, memberNames));
 }
示例#24
0
 public static IValueMemberDescriptor GetValueDescriptor(this IReflectionExtensionPoint extensionPoint,
                                                         string memberName)
 {
     return(Extensions.GetValueDescriptor(extensionPoint, memberName));
 }
示例#25
0
 public static T Get <T, U>(this IReflectionExtensionPoint <U> extensionPoint,
                            IEnumerable <IValueMemberDescriptor> descriptors)
 {
     return(Extensions.Get <T>(extensionPoint, descriptors));
 }
示例#26
0
 public static IMemberDescriptor GetDescriptor <TArg1, TResult>(this IReflectionExtensionPoint <TArg1> extensionPoint, Expression <Func <TArg1, TResult> > func)
 {
     return(Extensions.GetDescriptor(extensionPoint, func));
 }
示例#27
0
 public static void Set <T, U>(this IReflectionExtensionPoint <U> extensionPoint, IEnumerable <string> memberNames,
                               T value)
 {
     Extensions.Set(extensionPoint, memberNames, value);
 }
 public virtual T Get <T>(IReflectionExtensionPoint extensionPoint, string memberName)
 {
     return((T)FindValueDescriptor(extensionPoint, memberName).GetValue(extensionPoint.ExtendedValue));
 }
示例#29
0
 public static IEnumerable <IMemberDescriptor> GetDescriptors(this IReflectionExtensionPoint extensionPoint,
                                                              IEnumerable <string> memberNames)
 {
     return(Extensions.GetDescriptors(extensionPoint, memberNames));
 }
示例#30
0
 public static IMemberDescriptor GetDescriptor(this IReflectionExtensionPoint extensionPoint)
 {
     return(Extensions.GetDescriptor(extensionPoint));
 }