public IPropertyProvider AddNew(string name, object value = null, TypeReference type = null) { if (value == null && type == null) { throw RuntimeFailure.DataProviderTypeOrValueNotBoth(); } if (value != null) { return(AddOne(name, PropertyProvider.FromValue(value))); } return(AddOne(name, PropertyProvider.LateBound(type))); }
protected override int MatchCriteriaCore(object criteria) { if (criteria == null) { return(0); } int result = 0; var pp = PropertyProvider.FromValue(criteria); result += EnumerateExtensions().Contains(pp.GetString("Extension")) ? 1 : 0; result += EnumerateContentTypes().Contains(pp.GetString("ContentType")) ? 1 : 0; result += MatchType(pp.GetProperty("OutputType")); return(result); }
internal static int MemberwiseEquals(object criteria, object other) { var pp = (other == null ? PropertyProvider.Null : PropertyProvider.FromValue(other)); int score = 0; foreach (var m in Properties.FromValue(criteria)) { var comparand = pp.GetProperty(m.Key); if (comparand is Type && m.Value is Type) { if (((Type)m.Value).GetTypeInfo().IsAssignableFrom((Type)comparand)) { score++; } } if (object.Equals(comparand, m.Value)) { score++; } } return(score); }
public static IPropertyProvider Compose( IEnumerable <KeyValuePair <string, object> > propertyProviders) { if (propertyProviders == null) { throw new ArgumentNullException(nameof(propertyProviders)); } return(Compose(propertyProviders.Select( s => new KeyValuePair <string, IPropertyProvider>(s.Key, PropertyProvider.FromValue(s.Value))))); }
public LateBoundPropertyProvider(TypeReference type) { _item = new Lazy <IPropertyProvider>( () => PropertyProvider.FromValue(Activation.CreateInstance(type.Resolve())) ); }