That is the rule because the compiler need to know the details of the Interface that is defined A because it is being used publicly as your public class implements it.
As assembly references aren't transitive you need to be explicit (to embed proper dependency versioning metadata) about which library you are referencing types from. Note that if your type MyClass had just a private field of that interface type, for instance, of if MyClass was in the internal instead of public scope the compiler would not need to have access to library A, but nevertheless your running app would need to have it available to load and execute code in library B. Hope it helps, Rafael Teixeira O..:.)oooo On Sat, Nov 23, 2013 at 1:32 PM, Vassil Vassilev <v.g.vassi...@gmail.com>wrote: > Hi, > A silly question: > I have interface IInterface defined in a library A. > I have a class(generic) MyClass, implementing that interface in library > B. > I have a user of MyClass (the place I do new MyClass<sometype>()), when > trying to compile the code using MyClass it tells me that I need to include > not only B but A as well. To me that is strange... Is there a way to > workaround this problem? Am I doing something wrong? > Many thanks, > Vassil > _______________________________________________ > Mono-devel-list mailing list > Mono-devel-list@lists.ximian.com > http://lists.ximian.com/mailman/listinfo/mono-devel-list >
_______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list