I noticed, thanks ;) 2010/6/24 Krzysztof Koźmic <[email protected]>
> BasedOn handles generic types pretty nicely :) > > > On 24/06/2010 8:06 AM, Simone Busoli wrote: > > Hi Krzysztof, > yes, something along the lines of that would probably work, I missed the > BasedOn method, or maybe I just thought that it couldn't deal with generic > types. > > Thanks a lot. > > 2010/6/23 Krzysztof Koźmic <[email protected]> > >> Simone - would it be possible to just keep the files in a common namespace >> and have >> >> AllTypes.FromThisAssembly().BasedOn(typeof(IMyComponent<, >)) >> .If(Component.IsInSameNamespaceAs<MyComponent>()) >> .WithService.AllInterfaces()); >> >> or would it not cut it for you? >> >> >> On 24/06/2010 1:47 AM, SimoneB wrote: >> >>> Ok this is what I've come up with, not very clean, honestly. >>> >>> var serviceType = typeof(IMyComponent<,>); >>> var basedOn = typeof(MyComponentBase<,>); >>> >>> Func<Type, bool> predicate = t => t.IsGenericType&& >>> t.GetGenericTypeDefinition() == basedOn; >>> >>> return AllTypes.FromAssembly(someAssembly) >>> .Where(type => type.IsAbstract == false&& >>> type.AnyInHierarchy(predicate)) >>> .WithService.Select((type, baseType) => >>> >>> Enumerable.ToEnumerable(serviceType.MakeGenericType(type.FirstInHierarchy(predicate).GetGenericArguments()))); >>> >>> Where the extension methods on Type have the obvious meaning. >>> >>> On Jun 23, 5:07 pm, SimoneB<[email protected]> wrote: >>> >>> >>>> Hi, >>>> >>>> how would I register a component like this: >>>> >>>> class MyComponent : MyComponentBase<Type1, Type2> {} >>>> >>>> abstract class MyComponentBase<T1, T2> : IMyComponent<T1, T2> {} >>>> >>>> interface IMyComponent<T1, T2> {} >>>> >>>> with service IMyComponent<Type1, Type2> which resolves to MyComponent >>>> by convention using the fluent API? >>>> >>>> >>> >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Castle Project Users" group. >> To post to this group, send email to >> [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<castle-project-users%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/castle-project-users?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Users" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/castle-project-users?hl=en. > > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Users" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]<castle-project-users%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/castle-project-users?hl=en. > -- You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en.
