@@ -154,8 +154,8 @@ public override IEnumerable<Expression> GetExpressions(Type type, IPolicySet reg
154154 public override ResolveDelegate < BuilderContext > GetResolver ( Type type , IPolicySet registration , ResolveDelegate < BuilderContext > seed )
155155 {
156156 var selector = GetPolicy < ISelect < TMemberInfo > > ( registration ) ;
157- var members = selector . Select ( type , registration ) ;
158- var resolvers = ResolversFromSelection ( type , members ) . ToArray ( ) ;
157+ var members = selector . Select ( type , registration ) ;
158+ var resolvers = ResolversFromSelection ( type , members ) . Distinct ( ) . ToArray ( ) ;
159159
160160 return ( ref BuilderContext c ) =>
161161 {
@@ -172,14 +172,12 @@ public override ResolveDelegate<BuilderContext> GetResolver(Type type, IPolicySe
172172
173173 public virtual IEnumerable < object > Select ( Type type , IPolicySet registration )
174174 {
175- HashSet < object > memberSet = new HashSet < object > ( ) ;
176-
177175 // Select Injected Members
178176 if ( null != ( ( InternalRegistration ) registration ) . InjectionMembers )
179177 {
180178 foreach ( var injectionMember in ( ( InternalRegistration ) registration ) . InjectionMembers )
181179 {
182- if ( injectionMember is InjectionMember < TMemberInfo , TData > && memberSet . Add ( injectionMember ) )
180+ if ( injectionMember is InjectionMember < TMemberInfo , TData > )
183181 yield return injectionMember ;
184182 }
185183 }
@@ -193,12 +191,10 @@ public virtual IEnumerable<object> Select(Type type, IPolicySet registration)
193191 for ( var i = 0 ; i < AttributeFactories . Length ; i ++ )
194192 {
195193#if NET40
196- if ( ! member . IsDefined ( AttributeFactories [ i ] . Type , true ) ||
194+ if ( ! member . IsDefined ( AttributeFactories [ i ] . Type , true ) ) continue ;
197195#else
198- if ( ! member . IsDefined ( AttributeFactories [ i ] . Type ) ||
196+ if ( ! member . IsDefined ( AttributeFactories [ i ] . Type ) ) continue ;
199197#endif
200- ! memberSet . Add ( member ) ) continue;
201-
202198 yield return member ;
203199 break ;
204200 }
0 commit comments