/// <summary> /// /// </summary> /// <returns></returns> public static IValueValidatorFactory GetValueValidatorFactory() { var _stackFrame = StackTraceHelpers.GetStackFrameByIndex(2); var _factoryProvider = typeof(IValueValidatorFactoryProvider); var _memberDescriptor = (AttributeMemberDescriptor)null; if (null != _stackFrame) { if (_stackFrame.MethodDescriptor.HasAttributeMembers) { _memberDescriptor = _stackFrame.MethodDescriptor.GetAttributeDescriptorByAttributeType(_factoryProvider); if (null != _memberDescriptor) { return((_memberDescriptor.Member as IValueValidatorFactoryProvider).ValueValidatorFactory); } } var _declaringType = _stackFrame.MethodDescriptor.Member.DeclaringType; var _descriptors = AttributeMemberHelpers.RetrieveMemberDescriptors(_declaringType, _factoryProvider); if (null != _descriptors) { _memberDescriptor = _descriptors.GetDescriptorByAttributeType(_factoryProvider); return((_memberDescriptor.Member as IValueValidatorFactoryProvider).ValueValidatorFactory); } } return(CreateValueValidatorFactory()); }
/// <summary> /// /// </summary> /// <param name="instance"></param> /// <returns></returns> public static DbQueryActionDescriptors RetrieveMemberDescriptors(object instance) { return(AttributeMemberHelpers.RetrieveMemberDescriptors <DbQueryActionDescriptor, DbQueryActionDescriptors>(instance, typeof(IDbQueryAction), true)); }