Ok, so what do you say on adding a method that behaves like
AllInterfaces but filters out all interfaces that are in System
namespaces (or one of its subnamespaces)?
I'm just not sure what would be a good name for the method in the API...
WithService.NonSystemInterfaces() just doesn't sound cool :)
Ideas anyone?
@K
bling wrote:
Yep, pretty much.
On Tuesday, July 10, 2012 11:56:18 PM UTC-4, Krzysztof Koźmic wrote:
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
<https://groups.google.com/d/msg/castle-project-users/-/mSI1F8MzbNUJ>.
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/-/QnXe6-2WasIJ.
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.