В службе WCF у меня есть два класса с атрибутом [DataContract]. Один из этих классов имеет отношение "is-a" к другому, поэтому класс B может наследовать от класса A. Однако, когда я настраиваю наследование между этими двумя классами, оба обозначаются атрибутом [DataContract], метаданные не загружаются при тестировании услуг.
Возможно ли это в WCF? Я пропустил еще один атрибут?
[DataContract]
public class A
{
[DataMember]
public MyCustomType AValue1{ get; set; }
[DataMember]
public MyCustomType AValue2 { get; set; }
}
[DataContract]
public class B: A
{
[DataMember]
public double BValue1{ get; set; }
[DataMember]
public double BValue2 { get; set; }
}
ПРИМЕЧАНИЕ. Пользовательские типы также определяются с использованием контрактов данных.
ОБНОВЛЕНИЕ: Ниже приведена ошибка:
Ошибка: невозможно получить метаданные из http://localhost:8002/GISDataServices/mex Если это служба Windows (R) Communication Foundation, к которой у вас есть доступ, пожалуйста, проверьте что вы включили публикацию метаданных по указанному адресу. Чтобы помочь включить публикацию метаданных, обратитесь к документации MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata URI ошибки обмена: http://localhost:8002/GISDataServices/mex Метаданные содержат ссылку, которая не может быть решена: 'http://localhost:8002/GISDataServices/mex'. <Код > Receivera: InternalServiceFault Сервер не смог обработать запрос из-за внутренней ошибки. Для получения дополнительной информации об ошибке включите IncludeExceptionDetailInFaults (либо из ServiceBehaviorAttribute, либо из поведения конфигурации <serviceDebug> ) на сервере, чтобы отправить информацию об исключении обратно клиенту или включить трассировку в соответствии с Microsoft.NET. Framework 3.0 SDK и проверить журнал трассировки сервера. HTTP GET Ошибка URI: http://localhost:8002/GISDataServices/mex Произошла ошибка при загрузке 'http://localhost:8002/GISDataServices/mex '. Ошибка запроса с HTTP-статусом 400: неверный запрос.
ОБНОВЛЕНИЕ 2: См. мой ответ ниже.