首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

多个项目之间的引用值得有关问题,疑惑。

2013-10-17 
多个项目之间的引用值得问题,疑惑。。。我在一个项目A,添加引用了项目B,然后我再A项目的一个类中访问B中的一

多个项目之间的引用值得问题,疑惑。。。
我在一个项目A,添加引用了项目B,然后我再A项目的一个类中访问B中的一个静态变量,比如字典
users。但是这个users没有数据,而实际上如果在B项目里面看,是有数据的,真是的情况下是有数据的。为什么这样引用会没数据呢?
[解决办法]
你要跟踪调试,看一下B的字典在进行了什么初始化操作后才有数据。A调用时有没有走这些初始化流程 
[解决办法]
项目互相引用本身就是不推荐的,应该采用回调或者传入对象的方法,变成单向引用。
[解决办法]
有没有数据是运行时的事情

和引用应该没关系,你可以通过调试来查看变量的访问来确定数据什么时候被读写了
[解决办法]

引用:
Quote: 引用:

项目互相引用本身就是不推荐的,应该采用回调或者传入对象的方法,变成单向引用。

项目没有相互引用啊,再说好像不能相互引用把?

在.net中是不能互相引用的。
你引用的是静态值,所以你要明白,静态变量只是在实例之前加载,而且只会加载一次。所以你访问的时候要确定这个变量是否已经赋值。
[解决办法]
静态变量也是可以赋值的,你要看b项目里面是什么时候赋的值,如果没赋值,你调用时没值就是正常的了。
[解决办法]
引用:
你要跟踪调试,看一下B的字典在进行了什么初始化操作后才有数据。A调用时有没有走这些初始化流程 

+1
[解决办法]
引用:
是不是因为在不同的进程???我试了单列模式,也不行。。。不知道为什么。。。求助。。。


如果真是在不同的进程里,的确会那样,进程是应用程序的边界,一个应用程序可以包含多个应用程序域,在运行时,程序集(dll)会被加载到各自的应用程序域中,可以动态加/卸载
[解决办法]
既然引用到了A A运行,应该在一个进程中,你看一下有哪是不是对Users 进行了操作

热点排行