Если вы используете стандартный инструмент wsdl.exe для создания прокси и вспомогательных классов, то я считаю, что он генерирует код как частичные классы.Если это ваша ситуация, то вы можете вставить свой собственный оператор неявного преобразования в один из типов.Например, предположим, что ваш класс MyService.foo определен в файле «MyService \ foo.cs», как показано ниже:
namespace MyService
{
public partial class foo
{
public string PropertyA { get; set; }
public string PropertyB { get; set; }
public string PropertyC { get; set; }
// ...
}
}
И у вас есть класс MyFramework.foo, определенный в файле «MyFramework \»foo.cs "как показано ниже:
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;