Right,

so what you really want is not "All interfaces" but rather "service interfaces" that would be like all interfaces but filtering out "noise" that is all the ISerializable, IDisposable, IComparable, IEnumerable<ValueType> etc?

@K


On 11/07/12 12:57 PM, bling wrote:
I don't.

The way I have my application is the typical:

  * Register explicitly, i.e.
    Component.For<IFoo>().ImplementedBy<Foo>()..., for things that I
    need explicit.
  * Then, some convention based things.  Like
    Classes.Pick().BasedOn<Bar>().WithServiceBase().
  * Finally, the "catch all", which is
    Register(Classes.Pick().WithServiceSelf().WithServiceAllInterfaces()).

I have an infrastructure library which contains a bunch of helper classes, some of which contain basic services that are required. As the infrastructure library, it also will contain things that are not services, like a ReadOnlyDictionary<,>, which is what caused the exception. WithDefaultInterfaces() will not work since some classes are not a 1-to-1 implementation, and implement multiple service interfaces.


On Tuesday, July 10, 2012 10:39:07 PM UTC-4, Krzysztof Koźmic wrote:

    So leaving this example aside, the reason for this behavior is
    that Windsor sees you're registering your type as
    IEnumerable<SomeValueType> which while used to be allowed
    previously is not really something you'd want to have as a service.

    So can you help me better understand in your actual scenario why
    do you want to expose IEnumerable<SomeValueType> as a service off
    your component?

    thanks,
    @K

    On 11/07/12 8:28 AM, bling wrote:
    [Test]
            public void RegisterGenericType_WithServiceAllInterfaces()
            {
                Assert.DoesNotThrow(() =>
    
Kernel.Register(Classes.From(typeof(Dictionary<,>)).Pick().WithServiceAllInterfaces()));
            }

    On Tuesday, July 10, 2012 6:10:57 PM UTC-4, Krzysztof Koźmic wrote:

        Thanks.

        Can you create an actual failing test?

        Thanks
        @k

        On Jul 11, 2012 8:09 AM, "bling" <[email protected]
        <mailto:[email protected]>> wrote:

            the following works with 3.0, but throws an exception in 3.1

            var c = new WindsorContainer();
            
c.Register(Classes.From(typeof(Dictionary<,>)).Pick().WithServiceBase().WithServiceAllInterfaces());

            i'm not sure what the actual issue is, but exception
            message complained about ICollection<KeyValuePair<,>> so
            i took a guess and was able to reproduce.  a class
            similar to that signature does exist in my actual code.

            thanks,
            bling
-- You received this message because you are subscribed to
            the Google Groups "Castle Project Users" group.
            To view this discussion on the web visit
            https://groups.google.com/d/msg/castle-project-users/-/M4VIrLskVH8J
            
<https://groups.google.com/d/msg/castle-project-users/-/M4VIrLskVH8J>.
            To post to this group, send email to
            [email protected]
            <mailto:[email protected]>.
            To unsubscribe from this group, send email to
            [email protected]
            <mailto:castle-project-users%[email protected]>.
            For more options, visit this group at
            http://groups.google.com/group/castle-project-users?hl=en
            <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 view this discussion on the web visit
    https://groups.google.com/d/msg/castle-project-users/-/f2QKPH2AibYJ
    <https://groups.google.com/d/msg/castle-project-users/-/f2QKPH2AibYJ>.
    To post to this group, send email to
    [email protected]
    <mailto:[email protected]>.
    To unsubscribe from this group, send email to
    [email protected]
    <mailto:[email protected]>.
    For more options, visit this group at
    http://groups.google.com/group/castle-project-users?hl=en
    <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 view this discussion on the web visit https://groups.google.com/d/msg/castle-project-users/-/mSI1F8MzbNUJ. 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].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to