当前位置: 代码迷 >> C# >> 同一解决方案的两个项目怎的能都对一个实例化出的变量进行修改
  详细解决方案

同一解决方案的两个项目怎的能都对一个实例化出的变量进行修改

热度:31   发布时间:2016-05-05 03:41:45.0
同一解决方案的两个项目怎样能都对一个实例化出的变量进行修改?
现在的情况是同一个解决方案中,项目A引用了项目B。我需要在项目A启动的时候就实例化一个变量,但是在程序运行期间,又需要在项目B中对这个实例完的变量进行修改。又不能循环引用,请问应该怎么处理?
参考了其他的博文,建议把公共的这个变量放到新的项目C中,然后A和B分别使用。但是也是要在项目A中进行实例化的。。咋办。。
------解决思路----------------------
或者还可以,在B中创建一个Delegate或者Event。 A中订阅这个event, 在处理函数中对变量进行修改,event的参数可以传要修改的值。
------解决思路----------------------
项目B依赖某种东西(比如说基本的、粗糙的、初步的ROLE对象),而你又想让它只属于A,这可能吗?

你的A中的一些class,顶多是B中已经知道的某种class的继承扩展。然后你的B它自己有相关的流程,而你的A中的程序就可以在自己的主程序初始化过程中创建这种对象,并按照B的流程去调用它、传递参数。

为了一个”变量“而创建一个项目C,那纯粹是瞎折腾呢。如果项目C很复杂,那么就值得创建。如果不复杂,就应该合并到B中。
------解决思路----------------------
问题是,对于WPF窗体,A和B哪个知道怎么变。
如果只有A知道,可以在B里设置一个事件,WPF窗体去侦听这个事件,当B的窗体单击后触发事件,WPF窗体做相应的变化。
如果只有B知道,可以定义一个接口,接口里定义了B所需要的所有成员,WPF实现这个接口,然后A把WPF窗体的实例以接口的方式传给B。
  相关解决方案