У меня есть метод службы WCF, который я хочу предоставить.
Тип параметра метода службы - это базовый класс всех типов с одинаковым именем класса и пространством имен XML.
Все производные типы находятся в разных пространствах имен C #, но должны быть представлены в одном и том же пространстве имен xml.Ниже приведена реализация.
Однако произошла ошибка при попытке добавить ссылку на службу с указанием типа дубликата.
В идеале Visual Studio должна автоматически назначать пространство имен C # для второго Shape (например, Set1.Shape, Set2.Shape).Таким образом, он может загружать все типы.
Любая идея будет принята с благодарностью.
[ServiceContract]
public interface IShape
{
[OperationContract]
[ServiceKnownType(typeof(Set1.Shape))]
[ServiceKnownType(typeof(Set2.Shape))]
void GetShape(ShapeBase shape);
}
public class ShapeBase : IShape { }
//Example only.
namespace Set1
{
public class Shape : ShapeBase { }
}
namespace Set2
{
public class Shape : ShapeBase { }
}
Обновление
Я могу опубликовать их наСторона службы WCF, которая заставляет думать, что она не может сделать то же самое на стороне клиента, заключается в том, что WSDL НЕ поддерживает пространство имен в языке программирования, таком как C #.