none
不同命名空间下的类用什么方式能方便转换 RRS feed

  • 问题

  • 比如引用一个webservice,调用GetAccount返回一个account,我本地也有一个类,字段属性方法和他完全一样,就是命名空间不同.怎么样能让那个对象转换成我的本地类的对象呢?我不想引用那个名字空间.有其它方法没?要不都改返回值为object,我试了不行..

    2009年12月15日 7:31

答案

  • 你好!
         即使你的类和远程类的字段,属性,和方法都一样,系统也认为是不同的类,想要转换的话,需要在本地新构建一个类的实例,然后把远程对象的属性和字段的值都赋给这个新创建的对象!
    周雪峰
    • 已建议为答案 mazhou 2009年12月15日 10:12
    • 已标记为答案 YiChun Chen 2009年12月16日 10:05
    2009年12月15日 9:16
    版主
  • 不要试图在 .NET 下做这种事。.NET Framework 提供了一套完全基于强类型的类型系统,因此即使属性、字段完全一样,在 CLR 看来,其 GetType() 后的 Type Object 也不一样。

    在 .NET Framework 4.0 中的 dynamic 可以比较好的解决您的问题,不用转换,直接利用 dynamic 类型访问从 Web Service 返回的对象就好。不过我不推荐这种方式,dynamic 不是用在这种场合的,相反,在强类型系统上引入 dynamic 可能带来灾难性后果。


    Mark Zhou
    • 已标记为答案 YiChun Chen 2009年12月16日 10:05
    2009年12月15日 10:16

全部回复

  • LZ是不想用USING引用?
    如果是这样的话,本地类前面加上全部的命名空间的名字可以初始化本地类。


    Hard work, hard play!
    2009年12月15日 7:51
  • 如果你要转换不同命名空间下的类,可以继承,子父类可以不再同一命名空间下


    Hard work, hard play!
    2009年12月15日 7:54
  • 这种情况 如果是winform 建议改装下程序采用.Net Remoting


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年12月15日 7:59
    版主
  • 你好!
         即使你的类和远程类的字段,属性,和方法都一样,系统也认为是不同的类,想要转换的话,需要在本地新构建一个类的实例,然后把远程对象的属性和字段的值都赋给这个新创建的对象!
    周雪峰
    • 已建议为答案 mazhou 2009年12月15日 10:12
    • 已标记为答案 YiChun Chen 2009年12月16日 10:05
    2009年12月15日 9:16
    版主
  • 不要试图在 .NET 下做这种事。.NET Framework 提供了一套完全基于强类型的类型系统,因此即使属性、字段完全一样,在 CLR 看来,其 GetType() 后的 Type Object 也不一样。

    在 .NET Framework 4.0 中的 dynamic 可以比较好的解决您的问题,不用转换,直接利用 dynamic 类型访问从 Web Service 返回的对象就好。不过我不推荐这种方式,dynamic 不是用在这种场合的,相反,在强类型系统上引入 dynamic 可能带来灾难性后果。


    Mark Zhou
    • 已标记为答案 YiChun Chen 2009年12月16日 10:05
    2009年12月15日 10:16
  • 你这个用WCF可以s,
    努力+方法=成功
    2009年12月16日 9:43