【发布时间】:2012-05-24 16:43:24
【问题描述】:
我正在尝试为自定义类型编写一个转换器类——将一种类型(及其所有属性)转换为另一种具有匹配属性的类型。
当属性也是自定义类型而不是简单类型时,问题就出现了。
自定义类型都是相同的,只是它们位于同一解决方案中的不同命名空间中。
TypeTwo 对象是 Web 服务引用。
例如
public TypeOne ConvertToTypeTwo (TypeTwo typeTwo)
{
var typeOne = new TypeOne();
typeOne.property1 = typeTwo.property1; //no problem on simple types
typeOne.SubType = typeTwo.SubType; //problem!
...
}
我在上面一行得到的错误是:
错误 166 无法将类型“TypeTwo.SubType”隐式转换为“TypeOne.SubType”
我试过这样投射
typeOne.SubType = (TypeOne)typeTwo.SubType;
但是得到:
错误 167 无法将类型“TypeTwo.SubType”转换为“TypeOne.SubType”
就这样
typeOne.SubType = typeTwo.SubType as TypeOne;
但是得到:
错误 168 无法通过引用将类型“TypeTwo.SubType”转换为“TypeOne.SubType” 转换,装箱转换,拆箱转换,包装 转换,或空类型转换
我不确定我还有哪些其他选择,或者我是否只是在做一些根本错误的事情。 有什么想法吗?
【问题讨论】:
标签: c#