我有一个DLL Core.dll,然后是一个DLL DataLayer.dll。
Core.dll引用了DataLayer.dll
在Datalayer.dll中,我需要访问Core.dll中的一些信息。有没有办法可以调用core.dll中的方法?
基本上,在数据层中,我需要在Core.dll中调用一些共享属性,这些属性包含一些信息,如当前登录的用户ID和其他一些信息。
不确定是否可以,如果是,请告诉我。
thanks
Sameers
答案 0 :(得分:0)
你不能这样做,因为C#编译器想知道编译程序集的顺序。任何依赖程序集应该在之后编译它所依赖的程序集。
所以你需要打破身体依赖。 F.E.您可以在单独的程序集中放置一组循环引用的类。
或者你可以在“内置”.NET接口IPrincipal
中隐藏当前用户,然后你们两个程序集将依赖于一个不被认为是不良做法的.NET核心。
理想情况下,您还应该删除逻辑依赖项。见f.e. http://en.wikipedia.org/wiki/Dependency_inversion_principle