2010-11-09 87 views
0

我在两个名称空间中有名为“Address”的类名。它是两个EDMX文件,所以它在客户端持有不同的命名空间。我有另一个类“供应商”,它拥有“地址”类的对象。在一种情况下,我必须从一个命名空间转换到另一个命名空间。 我怎么能做到这一点。Casting命名空间

+0

您不会*转换*名称空间,您可以通过用名称空间限定它们来解析类型。 – codymanix 2010-11-09 17:55:33

+0

是的,我知道这是设计缺陷,所有的损害已经完成。目前没有办法改变。这也有很多其他的类实例。因此,我们自己分配每一个属性是痛苦的工作。 – Mohanavel 2010-11-10 05:19:44

回答

1

你不命名空间命名空间,决心类型通过预选赛他们。

一般来说是一个坏主意有多个类具有相同的名称,特别是如果他们在应用程序中的某个地方一起使用

0

这是不可能自动。命名空间实际上只是类的名称的前缀。基本上它们是完全不同的类,没有什么共同之处。

0

除非一个Address类是从另一个Address类派生的,否则根本不能在两者之间进行投射。你可以做的是给班某种“转换构造”的,是以相应的其他类的对象和字段映射到其自己的:

namespace NS1 
{ 
    public class Address 
    { 
     // fields go here 

     public Address(NS2.Address add2) 
     { 
      this.Name = add2.Name; 
      this.Street = add2.Street; 

      // etc. 
     } 
    } 
} 
0

铸造命名空间是概念不正确。从一种类型转换为另一种类型更合适。除非这两个类在继承方面相关,否则根本不能使用强制转换。