WebService中大量的类,需要转化为本地自定义的类,用什么模式好?

ndsc20090609 2009-06-18 05:27:33
比如WebService中大量的类 A1 A2 A3 A4 A5...
对应本地自定义的 B1 B2 B3 B4 B5..
需要实现 从 A1的实例 到B1的实例的转化。
即 F(new A1()) = new B1() ,用什么模式比较好?? 理由

...全文
38 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ndsc20090609 2009-06-19
  • 打赏
  • 举报
回复
我靠,给错分了!!
ndsc20090609 2009-06-19
  • 打赏
  • 举报
回复
Sorry

是我词不达意,其实我想的是可扩展的模式,而不是具体的 F(new A1()) = new B1() 的实现。

本贴马上结分,另开帖子问,如果还有分的话,呵呵。
kangbo818 2009-06-19
  • 打赏
  • 举报
回复
帮顶
ourola 2009-06-19
  • 打赏
  • 举报
回复
简单一点的话,接口就可以解决问题..
vwxyzh 2009-06-18
  • 打赏
  • 举报
回复
实体类之间内容复制?
如果结构高度相似的话,可以看我以前写的一篇Blog
用起来就是:
EntityCopier copier = EntityCopier.CreateAuto();
// Blog中有具体实现,并且支持嵌套
// 如果有特殊的copy方式,需要注册相关的类型之间的copy方法
// 到具体copy的时候就是:
public B1 Copy(A1 a)
{
B1 b = null;// 如果B1有默认构造函数,可以直接传null,否则,请手动new出来
copier.Copy<A1, B1>(a, ref b);
return b;
}
wuyq11 2009-06-18
  • 打赏
  • 举报
回复
用List<>泛型集合替代IList<>泛型接口集合。
将List<>泛型集合序列化为二进制形式,进行传递。

protected void CallService()
{
WebService ws = new WebService();
byte[] bs = ws.GetEmployeeListByteArray();
IList<A> list = null;
try
{
MemoryStream ms = new MemoryStream(bs);
BinaryFormatter formatter = new BinaryFormatter();
list = (List<A>)formatter.Deserialize(ms);
}
catch (Exception ex)
{
Response.Write("<script language='javaScript'>alert('"+ex.Message+"');</script>");
}

wuyq11 2009-06-18
  • 打赏
  • 举报
回复
web services中类的传递都需要序列化。
参考
宝_爸 2009-06-18
  • 打赏
  • 举报
回复
序列化.....是不是有点太重了.
lchy110 2009-06-18
  • 打赏
  • 举报
回复
做的不多 我做的都是
mxtweb.ADC.AdcSiRequest adcSiRequest = new mxtweb.ADC.AdcSiRequest();//实例化webservice的类



adcSiRequest.BizCode=localAdcSiRequest.BizCode;//将本地对应类的属性字段值赋给webservice类的属性值

-----------------接触这方面的不多 也没啥好优化办法
麻子Mozart 2009-06-18
  • 打赏
  • 举报
回复
帮顶
NealXX 2009-06-18
  • 打赏
  • 举报
回复
适配器。。

110,537

社区成员

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

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

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