首页 新闻 会员 周边 捐助

C# 多项目共通变量的引用与修改

0
悬赏园豆:50 [已解决问题] 解决于 2016-09-27 21:47

共通变量修改后,其他引用该变量的项目还是没有变化,请问怎么办

举例:

类库A

    public class Class1     {public static string AA = "AAA";}

类库B,引用了A

    public class Class1     {public static string BB = A.Class1.AA;}

项目winform,引用了类库A,B

button点击事件写

   A.Class1.AA="CC";

  MessageBox.Show( B.Class1.BB);

问题补充:

举例的结果,还是显示AAA,请问这种多项目文件共通变量的修改与引用怎么解决

目前的解决方案:修改为一个配置文件,全部项目用这一个配置文件应该可以;

第二个方案就是每个项目启动的时候都去读取xml文件内容

灭火的哪吒的主页 灭火的哪吒 | 初学一级 | 园豆:104
提问于:2016-09-25 22:29
< >
分享
最佳答案
2

你这个代码根本就没办法运行的啊。

首先你确认下那几个字段都是私有的么?而且调用的时候你怎么不实例化来拿值?

就算要达到你的效果,也应该是这样写吧

//namespace A

class Class1

{public static string AA;}

//namespace B

class Class1

{public sting BB=A.Class1.AA;}

//main

A.Class1.AA="CC";

MessageBox.Show(new B.Class1().BB);

收获园豆:50
Daniel Cai | 专家六级 |园豆:10424 | 2016-09-26 11:15

不好意思,晕头了,发现写错了,是public static 

灭火的哪吒 | 园豆:104 (初学一级) | 2016-09-26 19:29

@灭火的哪吒: 如果你是在同一应用程序域下是只需要把A.Class1放到静态字段中就可以共享。如果在不同应用程序域下,可以通过appdomian对信息进行封装发送。如果在不同进程下,只能找第三者来辅助你共享这些信息,比如sql,cache,file等。

Daniel Cai | 园豆:10424 (专家六级) | 2016-09-27 09:41

@灭火的哪吒: 你要给它赋值,你却用静态修饰他,static只会被分配一次,下次调用还是原来你给它的值,你要给他赋值就不行了,去掉static就可以了

小粽子饱饱 | 园豆:251 (菜鸟二级) | 2016-09-27 16:03
其他回答(5)
0

共通变量是什么意思.是静态变量的意思吗.没听过这个名次..

吴瑞祥 | 园豆:29449 (高人七级) | 2016-09-25 22:48

就是一个说法,目的是多项目共同引用一个类库的一个静态字段,其中一个项目修改该字段后,其他类库用这个字段还是未改变的值,比较头痛

支持(0) 反对(0) 灭火的哪吒 | 园豆:104 (初学一级) | 2016-09-26 19:28
0

共享的可以设置为静态的,或者是通过单例模式实现。

CodeHsu | 园豆:5668 (大侠五级) | 2016-09-25 23:05
0

这名词都没听说过。

顾晓北 | 园豆:10898 (专家六级) | 2016-09-26 09:32

就是一个说法,目的是多项目共通引用一个类库的一个静态字段,其中一个项目修改该字段后,其他类库用这个字段还是未改变的值,比较头痛

支持(0) 反对(0) 灭火的哪吒 | 园豆:104 (初学一级) | 2016-09-26 19:28

@灭火的哪吒: 通常,现在有个名词叫:面向切面编程。。。这样的东西,你可以新建一个项目,然后对外提供统一的访问接口访问。。。

比如针对这个字段,你新建一个网站,返回json。。。

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2016-09-27 09:18
0

lib b:

 public class Class1     {public string BB {get{return A.Class1.AA;}}}

czd890 | 园豆:14488 (专家六级) | 2016-09-26 11:15
0

去掉static,解决

小粽子饱饱 | 园豆:251 (菜鸟二级) | 2016-09-27 16:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册