Пример #1
0
 private void ProvideSpecificTraits(ProjectionProperty property, ITraitAggregator aggregator)
 {
     PropertyScope scope;
     var scopes = specificPropertyScopes;
     if (scopes != null && scopes.TryGetValue(property.Name, out scope))
         scope.ProvideTraits(aggregator);
 }
Пример #2
0
 private void ProvideGeneralTraits(ProjectionProperty property, ITraitAggregator aggregator)
 {
     var scopes = generalPropertyScopes;
     if (scopes != null)
         foreach (var scope in scopes)
             if (scope.AppliesTo(property))
                 scope.ProvideTraits(aggregator);
 }
Пример #3
0
        public void ProvideTypeTraits(ITraitAggregator aggregator)
        {
            if (aggregator == null)
                throw Error.ArgumentNull("aggregator");

            ProvideAttributes(underlyingType, aggregator);

            var scopes = this.scopes;
            if (scopes != null)
                foreach (var scope in scopes)
                    scope.ProvideTraits(aggregator);
        }
Пример #4
0
        public void ProvidePropertyTraits(
            ProjectionProperty projectionProperty,
            PropertyInfo       underlyingProperty,
            ITraitAggregator   aggregator)
        {
            if (projectionProperty == null)
                throw Error.ArgumentNull("projectionProperty");
            if (underlyingProperty == null)
                throw Error.ArgumentNull("underlyingProperty");
            if (aggregator == null)
                throw Error.ArgumentNull("aggregator");

            ProvideAttributes(underlyingProperty, aggregator);

            var scopes = this.scopes;
            if (scopes != null)
                foreach (var scope in scopes)
                    scope.ProvideTraits(projectionProperty, aggregator);
        }
Пример #5
0
 private static void ProvideAttributes(MemberInfo source, ITraitAggregator aggregator)
 {
     foreach (var trait in source.GetCustomAttributes(false))
         aggregator.Add(trait);
 }
Пример #6
0
 internal void ProvideTraits(ProjectionProperty property, ITraitAggregator aggregator)
 {
     ProvideGeneralTraits (property, aggregator);
     ProvideSpecificTraits(property, aggregator);
 }
Пример #7
0
 internal void ProvideTraits(ITraitAggregator aggregator)
 {
     foreach (var trait in traits)
         aggregator.Add(Realize(trait));
 }