Я создаю концептуальный сервис WCF и намеренно строю все интерфейсы, чтобы избежать необходимости в какой-либо конкретной реализации.Я хотел бы отправить полученный контракт (включая определения сообщений) другой команде, чтобы начать сборку на основе контракта, который я строю, но параметры сообщения не сериализуются, если я не предоставлю класс, украшенный DataContractAttribute.Есть ли способ для меня продолжать использовать слабосвязанные интерфейсы для определения моего контракта или мне нужно вместо этого создавать все мои сообщения, используя классы?
Пример службы
[ServiceContract]
public interface ITestService
{
[OperationContract]
ITestResponse TestOperation(ITestRequest request);
}
public interface ITestRequest
{
string Message { get; set; }
}
public interface ITestResponse
{
bool Success { get; set; }
}
Пример определения XSD
<xs:element name="TestOperation">
<xs:complexType>
<xs:sequence>
<!--I want this to be a reference to a complex type with definition of it's members-->
<xs:element minOccurs="0" name="result" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
</xs:element>