カスタムタイプのコンバータークラスを作成しようとしています。あるタイプ(およびそのすべてのプロパティ)を、一致するプロパティを持つ別のタイプに変換します。
問題は、プロパティが単純な型ではなく、カスタム型でもある場合に発生します。
カスタムタイプは、同じソリューション内の異なる名前空間に存在することを除いて、すべて同じです。
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参照変換、ボクシング変換、ボックス解除変換、ラッピング変換、またはnull型変換を介してタイプ'TypeTwo.SubType'を'TypeOne.SubType'に変換できません
他にどのような選択肢があるのか、あるいは根本的に間違ったことをしているだけなのかわかりません。何かご意見は?