多个项目之间的引用值得问题,疑惑。。。
我在一个项目A,添加引用了项目B,然后我再A项目的一个类中访问B中的一个静态变量,比如字典
users。但是这个users没有数据,而实际上如果在B项目里面看,是有数据的,真是的情况下是有数据的。为什么这样引用会没数据呢?
------解决方案--------------------你要跟踪调试,看一下B的字典在进行了什么初始化操作后才有数据。A调用时有没有走这些初始化流程
------解决方案--------------------项目互相引用本身就是不推荐的,应该采用回调或者传入对象的方法,变成单向引用。
------解决方案--------------------有没有数据是运行时的事情
和引用应该没关系,你可以通过调试来查看变量的访问来确定数据什么时候被读写了
------解决方案--------------------
在.net中是不能互相引用的。
你引用的是静态值,所以你要明白,静态变量只是在实例之前加载,而且只会加载一次。所以你访问的时候要确定这个变量是否已经赋值。
------解决方案--------------------静态变量也是可以赋值的,你要看b项目里面是什么时候赋的值,如果没赋值,你调用时没值就是正常的了。
------解决方案--------------------你要跟踪调试,看一下B的字典在进行了什么初始化操作后才有数据。A调用时有没有走这些初始化流程
+1
------解决方案--------------------是不是因为在不同的进程???我试了单列模式,也不行。。。不知道为什么。。。求助。。。
如果真是在不同的进程里,的确会那样,进程是应用程序的边界,一个应用程序可以包含多个应用程序域,在运行时,程序集(dll)会被加载到各自的应用程序域中,可以动态加/卸载
------解决方案--------------------既然引用到了A A运行,应该在一个进程中,你看一下有哪是不是对Users 进行了操作