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

Reply via email to