public static BindableDomainObjectPropertyReflector Create( IPropertyInformation propertyInfo, BindableObjectProvider businessObjectProvider, IDomainModelConstraintProvider domainModelConstraintProvider, IDefaultValueStrategy defaultValueStrategy) { return(ObjectFactory.Create <BindableDomainObjectPropertyReflector> ( true, ParamList.Create(propertyInfo, businessObjectProvider, domainModelConstraintProvider, defaultValueStrategy))); }
protected BindableDomainObjectPropertyReflector( IPropertyInformation propertyInfo, BindableObjectProvider businessObjectProvider, IDomainModelConstraintProvider domainModelConstraintProvider, IDefaultValueStrategy defaultValueStrategy) : this(propertyInfo, businessObjectProvider, domainModelConstraintProvider, defaultValueStrategy, SafeServiceLocator.Current.GetInstance <IBindablePropertyReadAccessStrategy>(), SafeServiceLocator.Current.GetInstance <IBindablePropertyWriteAccessStrategy>(), SafeServiceLocator.Current.GetInstance <BindableObjectGlobalizationService>()) { }
public Parameters( [NotNull] BindableObjectProvider businessObjectProvider, [NotNull] IPropertyInformation propertyInfo, [NotNull] Type underlyingType, [NotNull] Lazy <Type> concreteType, [CanBeNull] IListInfo listInfo, bool isRequired, bool isReadOnly, [NotNull] IDefaultValueStrategy defaultValueStrategy, [NotNull] IBindablePropertyReadAccessStrategy bindablePropertyReadAccessStrategy, [NotNull] IBindablePropertyWriteAccessStrategy bindablePropertyWriteAccessStrategy, [NotNull] BindableObjectGlobalizationService bindableObjectGlobalizationService) { ArgumentUtility.CheckNotNull("businessObjectProvider", businessObjectProvider); ArgumentUtility.CheckNotNull("propertyInfo", propertyInfo); ArgumentUtility.CheckNotNull("underlyingType", underlyingType); ArgumentUtility.CheckNotNull("concreteType", concreteType); ArgumentUtility.CheckNotNull("defaultValueStrategy", defaultValueStrategy); ArgumentUtility.CheckNotNull("bindablePropertyReadAccessStrategy", bindablePropertyReadAccessStrategy); ArgumentUtility.CheckNotNull("bindablePropertyWriteAccessStrategy", bindablePropertyWriteAccessStrategy); ArgumentUtility.CheckNotNull("bindableObjectGlobalizationService", bindableObjectGlobalizationService); BusinessObjectProvider = businessObjectProvider; PropertyInfo = propertyInfo; UnderlyingType = underlyingType; ConcreteType = new Lazy <Type> ( () => { var actualConcreteType = concreteType.Value; if (!underlyingType.IsAssignableFrom(actualConcreteType)) { throw new InvalidOperationException( string.Format( "The concrete type must be assignable to the underlying type '{0}'.\r\nConcrete type: {1}", underlyingType.FullName, actualConcreteType.FullName)); } return(actualConcreteType); }, LazyThreadSafetyMode.ExecutionAndPublication); ListInfo = listInfo; IsRequired = isRequired; IsReadOnly = isReadOnly; DefaultValueStrategy = defaultValueStrategy; BindablePropertyReadAccessStrategy = bindablePropertyReadAccessStrategy; BindablePropertyWriteAccessStrategy = bindablePropertyWriteAccessStrategy; BindableObjectGlobalizationService = bindableObjectGlobalizationService; }
public BindableDomainObjectPropertyReflector( IPropertyInformation propertyInfo, BindableObjectProvider businessObjectProvider, IDomainModelConstraintProvider domainModelConstraintProvider, IDefaultValueStrategy defaultValueStrategy, IBindablePropertyReadAccessStrategy bindablePropertyReadAccessStrategy, IBindablePropertyWriteAccessStrategy bindablePropertyWriteAccessStrategy, BindableObjectGlobalizationService bindableObjectGlobalizationService) : base( propertyInfo, businessObjectProvider, defaultValueStrategy, bindablePropertyReadAccessStrategy, bindablePropertyWriteAccessStrategy, bindableObjectGlobalizationService) { ArgumentUtility.CheckNotNull("businessObjectProvider", businessObjectProvider); ArgumentUtility.CheckNotNull("domainModelConstraintProvider", domainModelConstraintProvider); _domainModelConstraintProvider = domainModelConstraintProvider; }
protected PropertyBase(Parameters parameters) { ArgumentUtility.CheckNotNull("parameters", parameters); if (parameters.PropertyInfo.GetIndexParameters().Length > 0) { throw new InvalidOperationException("Indexed properties are not supported."); } _businessObjectProvider = parameters.BusinessObjectProvider; _propertyInfo = parameters.PropertyInfo; _underlyingType = parameters.UnderlyingType; _listInfo = parameters.ListInfo; _isRequired = parameters.IsRequired; _isReadOnly = parameters.IsReadOnly; _defaultValueStrategy = parameters.DefaultValueStrategy; _bindablePropertyReadAccessStrategy = parameters.BindablePropertyReadAccessStrategy; _bindablePropertyWriteAccessStrategy = parameters.BindablePropertyWriteAccessStrategy; _bindableObjectGlobalizationService = parameters.BindableObjectGlobalizationService; _isNullable = GetNullability(); _valueGetter = Maybe.ForValue(_propertyInfo.GetGetMethod(true)).Select(mi => mi.GetFastInvoker <Func <object, object> >()).ValueOrDefault(); _valueSetter = Maybe.ForValue(_propertyInfo.GetSetMethod(true)).Select(mi => mi.GetFastInvoker <Action <object, object> >()).ValueOrDefault(); }
public BindableDomainObjectDefaultValueStrategy() { _innerDefaultValueStrategy = new BindableObjectDefaultValueStrategy(); }