10 个解决方案
#1
做个公共的配置文件都可以访问不就可以的吗
#2
我可能没有说清楚,A的配置文件是.NET自动去访问的,并不是在B、C、D类库中自己写代码去访问
#3
你在代码中怎么操作D 把那些信息放到配置文件中
#4
楼上说的有道理
#5
还是举个例子吧:
在B类库的项目中,我有一个Web引用,指向http://localhost/Web_B,
在C类库的项目中,我有一个Web引用,指向http://localhost/Web_C,
在D类库的项目中,我有一个Web引用,指向http://localhost/Web_D。
然后A是一个EXE程序,在A.exe.config中,我可以通过applicationSettings来指明A要用到B、C时,B、C去访问的WEB,如:
<B.Properties.Settings>
<setting name="B_WebReference_BpLogMngService" serializeAs="String">
<value>http://192.168.15.28/Web_B.asmx</value>
</setting>
</B.Properties.Settings>
<C.Properties.Settings>
<setting name="C_WebReference_BpLogMngService" serializeAs="String">
<value>http://192.168.15.28/Web_C.asmx</value>
</setting>
</C.Properties.Settings>
这样处理,我可以通过在应用配置文件随时改变B、C要去访问的WebService。
但是D的情况不一样,D是提供封装好的控件给B、C使用,不是直接由A调用。如果像上面的方式写配置文件,达不到变更D访问URL的目的。
在B类库的项目中,我有一个Web引用,指向http://localhost/Web_B,
在C类库的项目中,我有一个Web引用,指向http://localhost/Web_C,
在D类库的项目中,我有一个Web引用,指向http://localhost/Web_D。
然后A是一个EXE程序,在A.exe.config中,我可以通过applicationSettings来指明A要用到B、C时,B、C去访问的WEB,如:
<B.Properties.Settings>
<setting name="B_WebReference_BpLogMngService" serializeAs="String">
<value>http://192.168.15.28/Web_B.asmx</value>
</setting>
</B.Properties.Settings>
<C.Properties.Settings>
<setting name="C_WebReference_BpLogMngService" serializeAs="String">
<value>http://192.168.15.28/Web_C.asmx</value>
</setting>
</C.Properties.Settings>
这样处理,我可以通过在应用配置文件随时改变B、C要去访问的WebService。
但是D的情况不一样,D是提供封装好的控件给B、C使用,不是直接由A调用。如果像上面的方式写配置文件,达不到变更D访问URL的目的。
#6
不懂,只能友情的UP下
#7
我感觉应该 由C去解释怎么对D进行配置,如果c中要求另写的话,就只有另写了
#8
D的url是定死的吗?如果不是定死的,从哪里获取
#9
这个很简单,你在A中调用B/C/D前,做个中转类对调用进行判断即可。如:
在App.config中的applicationSettings下加一项:
<add key="WebServiceInvoked" value="A"/><!--A:Web_A,B:Web_B,C:Web_C-->
在中转类中:
string url = "";
//获取WebServiceInvoked,
string wsi = ...
如果wsi == "A"
if(wsi == "A")
url = "http://localhost/Web_A.asmx";
else
url = ...
至于对D中的访问路径的修改,也是可以实现的,你在D中用Configuration来访问配置文件,同样可以访问到你的这个config,类库里访问配置文件就是该类库dll下的config文件。
在App.config中的applicationSettings下加一项:
<add key="WebServiceInvoked" value="A"/><!--A:Web_A,B:Web_B,C:Web_C-->
在中转类中:
string url = "";
//获取WebServiceInvoked,
string wsi = ...
如果wsi == "A"
if(wsi == "A")
url = "http://localhost/Web_A.asmx";
else
url = ...
至于对D中的访问路径的修改,也是可以实现的,你在D中用Configuration来访问配置文件,同样可以访问到你的这个config,类库里访问配置文件就是该类库dll下的config文件。
#10
lovvver(ElephantTalk.Bright):
因为B、C访问WebService的地址设置都是项目自动变更的,请问如果是手动添加D类库运行时对URL的修改,应该写在什么地方?
因为B、C访问WebService的地址设置都是项目自动变更的,请问如果是手动添加D类库运行时对URL的修改,应该写在什么地方?
#1
做个公共的配置文件都可以访问不就可以的吗
#2
我可能没有说清楚,A的配置文件是.NET自动去访问的,并不是在B、C、D类库中自己写代码去访问
#3
你在代码中怎么操作D 把那些信息放到配置文件中
#4
楼上说的有道理
#5
还是举个例子吧:
在B类库的项目中,我有一个Web引用,指向http://localhost/Web_B,
在C类库的项目中,我有一个Web引用,指向http://localhost/Web_C,
在D类库的项目中,我有一个Web引用,指向http://localhost/Web_D。
然后A是一个EXE程序,在A.exe.config中,我可以通过applicationSettings来指明A要用到B、C时,B、C去访问的WEB,如:
<B.Properties.Settings>
<setting name="B_WebReference_BpLogMngService" serializeAs="String">
<value>http://192.168.15.28/Web_B.asmx</value>
</setting>
</B.Properties.Settings>
<C.Properties.Settings>
<setting name="C_WebReference_BpLogMngService" serializeAs="String">
<value>http://192.168.15.28/Web_C.asmx</value>
</setting>
</C.Properties.Settings>
这样处理,我可以通过在应用配置文件随时改变B、C要去访问的WebService。
但是D的情况不一样,D是提供封装好的控件给B、C使用,不是直接由A调用。如果像上面的方式写配置文件,达不到变更D访问URL的目的。
在B类库的项目中,我有一个Web引用,指向http://localhost/Web_B,
在C类库的项目中,我有一个Web引用,指向http://localhost/Web_C,
在D类库的项目中,我有一个Web引用,指向http://localhost/Web_D。
然后A是一个EXE程序,在A.exe.config中,我可以通过applicationSettings来指明A要用到B、C时,B、C去访问的WEB,如:
<B.Properties.Settings>
<setting name="B_WebReference_BpLogMngService" serializeAs="String">
<value>http://192.168.15.28/Web_B.asmx</value>
</setting>
</B.Properties.Settings>
<C.Properties.Settings>
<setting name="C_WebReference_BpLogMngService" serializeAs="String">
<value>http://192.168.15.28/Web_C.asmx</value>
</setting>
</C.Properties.Settings>
这样处理,我可以通过在应用配置文件随时改变B、C要去访问的WebService。
但是D的情况不一样,D是提供封装好的控件给B、C使用,不是直接由A调用。如果像上面的方式写配置文件,达不到变更D访问URL的目的。
#6
不懂,只能友情的UP下
#7
我感觉应该 由C去解释怎么对D进行配置,如果c中要求另写的话,就只有另写了
#8
D的url是定死的吗?如果不是定死的,从哪里获取
#9
这个很简单,你在A中调用B/C/D前,做个中转类对调用进行判断即可。如:
在App.config中的applicationSettings下加一项:
<add key="WebServiceInvoked" value="A"/><!--A:Web_A,B:Web_B,C:Web_C-->
在中转类中:
string url = "";
//获取WebServiceInvoked,
string wsi = ...
如果wsi == "A"
if(wsi == "A")
url = "http://localhost/Web_A.asmx";
else
url = ...
至于对D中的访问路径的修改,也是可以实现的,你在D中用Configuration来访问配置文件,同样可以访问到你的这个config,类库里访问配置文件就是该类库dll下的config文件。
在App.config中的applicationSettings下加一项:
<add key="WebServiceInvoked" value="A"/><!--A:Web_A,B:Web_B,C:Web_C-->
在中转类中:
string url = "";
//获取WebServiceInvoked,
string wsi = ...
如果wsi == "A"
if(wsi == "A")
url = "http://localhost/Web_A.asmx";
else
url = ...
至于对D中的访问路径的修改,也是可以实现的,你在D中用Configuration来访问配置文件,同样可以访问到你的这个config,类库里访问配置文件就是该类库dll下的config文件。
#10
lovvver(ElephantTalk.Bright):
因为B、C访问WebService的地址设置都是项目自动变更的,请问如果是手动添加D类库运行时对URL的修改,应该写在什么地方?
因为B、C访问WebService的地址设置都是项目自动变更的,请问如果是手动添加D类库运行时对URL的修改,应该写在什么地方?