我想为自定义类型编写一个转换器类 - 将一个类型(及其所有属性)转换为具有匹配属性的另一个类型。如何投一个复合自定义类型到另一个
问题出现在属性也是自定义类型时,而非简单类型。
自定义类型完全相同,只是它们位于同一解决方案中的不同名称空间中。
TypeTwo对象是Webservice引用。
例如
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' ENCE 转换,装箱转换,取消装箱转换,包装 转换,或null类型转换
我不知道我有什么其他选择,或者,如果我只是在做某种根本性错误。 有什么想法?
谢谢。你的建议做到了诀窍。我为子类型编写了一个单独的转换器,然后调用该方法而不是尝试不可能的转换。再次感谢! –