svcutil сгенерировал клиентский код привязки службы WCF, который не компилируется - PullRequest
0 голосов
/ 03 июня 2011
 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
 [System.Runtime.Serialization.DataContractAttribute(Name="TreeTraversalType", Namespace="http://schemas.datacontract.org/2004/07/DsLib")]
public enum TreeTraversalType : int
{
    [System.Runtime.Serialization.EnumMemberAttribute()]
    PreOrder = 0,

    [System.Runtime.Serialization.EnumMemberAttribute()]
    InOrder = 1,

    [System.Runtime.Serialization.EnumMemberAttribute()]
    PostOrder = 2,
}

от услуги, выставляющей следующий контракт

  [OperationContract]
  void PrintTraversePath(TreeTraversalType type);

Но на стороне клиента написано, что Serialization не содержит DataContractAttribute.

Кроме того, ранее при компиляции службы я получал CLS-несовместимую ошибку для этого перечисления, но позже, без каких-либо связанных изменений, она разрешалась (должно быть, было изменено что-то еще, что, я не знаю, согласуется с этим).

У меня такой вопрос, почему такое поведение ошибки компиляции и что такое CLS-совместимость. Не могу ли я указать тип enum в Contract определении службы?

Ответы [ 2 ]

1 голос
/ 03 июня 2011

Возможно, отсутствует ссылка на пространство имен Runtime.Serialization.

Перечисления не являются проблемой.Они хорошо работают в данных контрактах.

1 голос
/ 03 июня 2011

Перечисления отлично работают в контрактах.У вас есть ссылка на System.Runtime.Serialization.dll (где определен DataContractAttribute) в вашем проекте?

...