C#项目类之间互相引用的问题

yangjinan0729 2011-01-15 08:18:01
我用reflector还原了一个程序的源码,其他地方都生成成功了,只有一个地方没有解决:
项目中有一个启动项目 F_Main 还有一个类库 F_DataBase,F_Main引用类库F_DataBase.但是F_DataBase中也有一个类引用F_Main中的类,F_Main中已经添加了F_DataBase的引用,如果在F_DataBase中添加一个F_Main的引用的话 就会报错,造成循环引用.我直接在F_DataBase中添加了生成的F_Main.exe的引用 这样可以添加.

但是因为F_Main中原来有一个方法参数搞错了,而F_DataBase中引用的就是这个出错的方法.现在改正了参数,但是还是报错:没有找到6个参数的重载
这样就造成了两个项目都报错不能重新生成,因而都不能引用
但是源程序确实是没有问题的
...全文
1047 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangjinan0729 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sudianbo 的回复:]
如果出现循环引用,一般是结构划分不合理,可以通过调整来解决,比如移动部分方法或者属性所在项目或者拆分项目。如果工作量比较大的话,可以动态引用程序集,使用反射技术
[/Quote]靠谱~!
_三皮_ 2011-01-18
  • 打赏
  • 举报
回复
如果出现循环引用,一般是结构划分不合理,可以通过调整来解决,比如移动部分方法或者属性所在项目或者拆分项目。如果工作量比较大的话,可以动态引用程序集,使用反射技术
tanrenzong1986 2011-01-15
  • 打赏
  • 举报
回复
把独立性比较强的类实现成dll,再在主框架程序下引用这些dll即可。
yangjinan0729 2011-01-15
  • 打赏
  • 举报
回复
解决了,我先把引用到的那部分注释掉 等编译成功之后再添加dll引用就行了
yangjinan0729 2011-01-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wangsong145 的回复:]
我觉得楼主可以把F_Main中的那个要在F_DataBase中引用的方法单独出来成为一个项目,给F_DataBase引用,这样就不至于循环引用了
[/Quote]
F_DataBase引用的F_Main中的那个类里又引用了好多其他的同一命名空间下的类,我试了下,这样都加上的话又要引用F_DataBase了,就又回去了
wangsong145 2011-01-15
  • 打赏
  • 举报
回复
我觉得楼主可以把F_Main中的那个要在F_DataBase中引用的方法单独出来成为一个项目,给F_DataBase引用,这样就不至于循环引用了
yangjinan0729 2011-01-15
  • 打赏
  • 举报
回复 1
乱了套了 我想抽出那部分来 可是又发现那一部分里还有他们之间互相引用的,没法搞了
yangjinan0729 2011-01-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyq11 的回复:]
把公共需要的部分再抽一个dll出来,然后原来的2个dll引用这个
公共的窗体独立一个dll,然后通过策略模式给窗体配置行为
[/Quote]
这个确实是个好的解决办法 不过您说的这个"通过策略模式给窗体配置行为"可以说的具体点吗?
yangjinan0729 2011-01-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 guoyanhong1111 的回复:]
这个问题解决方法:这个你把之前都生成成功的dll和exe拷贝到你的项目下再生成就不会报错了!
[/Quote]

没有生成成功的dll 之前生成成功之后,项目里的类又修改过了 所以以前的都不能用了
  • 打赏
  • 举报
回复
类库间的引用?
guoyanhong1111 2011-01-15
  • 打赏
  • 举报
回复
这个问题解决方法:这个你把之前都生成成功的dll和exe拷贝到你的项目下再生成就不会报错了!
wuyq11 2011-01-15
  • 打赏
  • 举报
回复
把公共需要的部分再抽一个dll出来,然后原来的2个dll引用这个
公共的窗体独立一个dll,然后通过策略模式给窗体配置行为
yangjinan0729 2011-01-15
  • 打赏
  • 举报
回复
大家帮帮忙啦

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧