C#如何动态生成构造函数替换动态生成的程序集中某个类属性的默认值

Superisys 2014-11-12 10:16:54
背景:
封装了个动态调用webservice接口的类(根据传入的url自动获取wsdl,并编译为程序集),但是如果获取的wsdl中的url是无效的,那么在调用的时候就老是报连接的错,我想采用动态生成构造函数替换掉url的方式来解决这个问题。
问题:
C#如何动态生成构造函数替换动态生成的程序集中某个属性的默认值?
...全文
287 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Superisys 2014-11-13
  • 打赏
  • 举报
回复
引用 5 楼 lovelj2012 的回复:
你把文件都解析出来了,追加和替换不容易啊? 写文件的时候,把
public server(string _url)
{
 this.url=_url;
}
追加到最后一个大括号(})之前就成了
文件是用CodeDomProvider自动生成的,我看了下生成的文件里面不止含一个类,不是特别好追加。 不过问题还是解决了,方法如下:先把wsdl保存在本地,然后去改服务器的地址,再用wsdl文件生成代理类。。。
江南小鱼 2014-11-12
  • 打赏
  • 举报
回复
引用 4 楼 xiaowai0219 的回复:
[quote=引用 3 楼 lovelj2012 的回复:] 懂你的意思了 生成的代理类,格式一般是 public server() { this.url="xxxx"; } 比如代理类文件名是server1.cs,简单的办法,你把文件读入内存,然后替换这个文件里面的this.url="实际的url“ 然后重新保存文件
对,是可以这样处理,我想的是另外再添加一个构造函数 public server(string _url) { this.url=_url; } 添加构造函数也好,修改它的构造函数也好。这个怎么处理???读到内存后怎么添加进去或者找到相应的代码进行替换?[/quote] 你把文件都解析出来了,追加和替换不容易啊? 写文件的时候,把
public server(string _url)
{
 this.url=_url;
}
追加到最后一个大括号(})之前就成了
Superisys 2014-11-12
  • 打赏
  • 举报
回复
引用 3 楼 lovelj2012 的回复:
懂你的意思了 生成的代理类,格式一般是 public server() { this.url="xxxx"; } 比如代理类文件名是server1.cs,简单的办法,你把文件读入内存,然后替换这个文件里面的this.url="实际的url“ 然后重新保存文件
对,是可以这样处理,我想的是另外再添加一个构造函数 public server(string _url) { this.url=_url; } 添加构造函数也好,修改它的构造函数也好。这个怎么处理???读到内存后怎么添加进去或者找到相应的代码进行替换?
江南小鱼 2014-11-12
  • 打赏
  • 举报
回复
引用 2 楼 xiaowai0219 的回复:
[quote=引用 1 楼 lovelj2012 的回复:] 1、可以把url写在配置文件,直接取,防止输入错误。 2、手工输入的话,生成代理类之前,先检测url是否可以正常访问
传进来的URL是没有问题的,可以访问。但是根据URL获取的wsdl中的url是无效的,需要替换。[/quote] 懂你的意思了 生成的代理类,格式一般是 public server() { this.url="xxxx"; } 比如代理类文件名是server1.cs,简单的办法,你把文件读入内存,然后替换这个文件里面的this.url="实际的url“ 然后重新保存文件
Superisys 2014-11-12
  • 打赏
  • 举报
回复
引用 1 楼 lovelj2012 的回复:
1、可以把url写在配置文件,直接取,防止输入错误。 2、手工输入的话,生成代理类之前,先检测url是否可以正常访问
传进来的URL是没有问题的,可以访问。但是根据URL获取的wsdl中的url是无效的,需要替换。
江南小鱼 2014-11-12
  • 打赏
  • 举报
回复
1、可以把url写在配置文件,直接取,防止输入错误。 2、手工输入的话,生成代理类之前,先检测url是否可以正常访问

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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