標準の wsdl.exe ツールを使用してプロキシとサポート クラスを作成している場合、コードは部分クラスとして生成されると思います。それがあなたの状況である場合は、独自の暗黙的な変換演算子を型の 1 つに挿入できます。たとえば、次のように、ファイル "MyService\foo.cs" で MyService.foo クラスが定義されているとします。
namespace MyService
{
public partial class foo
{
public string PropertyA { get; set; }
public string PropertyB { get; set; }
public string PropertyC { get; set; }
// ...
}
}
そして、以下のように、ファイル "MyFramework\foo.cs" に MyFramework.foo クラスが定義されています。
namespace MyFramework
{
public class foo
{
public string PropertyA { get; set; }
public string PropertyB { get; set; }
public string PropertyC { get; set; }
// ...
}
}
次に、別のファイルを作成できます。たとえば、次のように「MyService\foo.conversion.cs」とします。
namespace MyService
{
partial class foo
{
public static implicit operator MyFramework.foo(foo input)
{
return new MyFramework.foo
{
PropertyA = input.PropertyA,
PropertyB = input.PropertyB,
PropertyC = input.PropertyC,
// ...
};
}
}
}
これにより、MyService.foo オブジェクトを MyFramework.foo オブジェクトであるかのように使用して、ほとんどのコードを記述できるようになります。次のコードは、上記のセットアップでコンパイルされます。
MyService.foo x = new MyService.foo();
MyFramework.foo y = x;