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.