2008-09-25 4 views
0

Я создал веб-ссылку (Добавить веб-ссылку) из Visual Studio 2008 и, как ни странно, мне нужно установить свойство NameField Указано как true для всех полей, которые я хочу подать. Несоблюдение этого и значения не возвращаются в службу WCF.propertyNameFieldSpecified при создании прокси-сервера веб-службы 2.0 из службы WCF

Я читал в нескольких местах, что это было исправлено в RTM-версии Visual Studio. Почему это все еще происходит?

Мои данные контракты действительны только с свойствами и списками. Есть идеи?

ответ

0

Я видел, как это произошло в VB.NET с нулевыми значениями, однако C# имел «правильный» код.

Может быть, идея будет заключаться в ссылке на сервис из проекта C#. Затем укажите этот проект из вашего кода VB.NET.

0

Я использую C#. Я подозревал, что это имеет какое-то отношение к автоматическим свойствам, но не повезло.

Вот класс образец, который:

[DataContract] 
public class BrowserBase : IBrowser 
{ 

    [DataMember] 
    public BrowserType BrowserType { get; set; } 

    [DataMember] 
    public IList<ResolutionBase> Resolutions { get; set; } 

} 
+0

Я использую подобный код, но я на SP1 уже и не могу вспомнить сейчас, если услуга была создана, прежде чем я применил SP1. Возможно, вы хотите попробовать VS2008SP1. – leppie 2008-09-25 14:02:19

0

Инструмент Xsd.exe виноват. Когда вы делаете «Добавить веб-ссылку», Visual Studio будет генерировать классы для всех ссылочных типов. Для этого используется инструмент xsd.exe. Есть замены для Xsd.exe на чистый

т.е. http://www.bware.biz/DotNet/Development/CodeXS/Article/Article_web.htm

, но я не вижу, как заменить поведение Add Web Reference.