WCF Service Reference создает второй класс - PullRequest
3 голосов
/ 04 января 2010

Я создаю ссылку на службу WCF с использованием VS2008, но в сгенерированном ссылочном файле определены 2 класса, представляющих один и тот же объект. Есть идеи, почему это будет? Смотрите результат ниже - THView и THView1 были сгенерированы, в то время как я ожидаю только THView.

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="THView", Namespace="http://schemas.datacontract.org/2004/07/CH.BusinessServices.Model")]
[System.SerializableAttribute()]
public partial class THView : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="THView", Namespace="http://tempuri.org/")]
[System.SerializableAttribute()]
public partial class THView1 : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {

Ответы [ 2 ]

2 голосов
/ 04 января 2010

Сервисные файлы создаются на основе метаданных службы (WSDL), и метаданные этой конкретной службы явно определяют два различных типа THView.

Они могут выглядеть одинаково (они имеют одно и то же имя), но на самом деле они разные, потому что они живут в двух разных пространствах имен (обратите внимание на свойство Namespace объекта DataContractAttribute) соответственно

Поскольку пространства имен разные, типы считаются разными. Это просто, как работает XML.

Похоже, что разработчик, который определил исходную службу, забыл изменить пространство имен XML по умолчанию для одного или нескольких типов, предоставляемых службой - по крайней мере, http://tempuri.org/ является пространством имен по умолчанию в WCF.

Настоятельно рекомендуется изменить пространство имен по умолчанию на пространство имен, «принадлежащее» владельцу службы.

0 голосов
/ 17 мая 2011

Проблема в том, что вы обновляете ссылку, когда у вас уже есть информация в app.config, чтобы исправить это, удалите информацию app.config перед обновлением прокси или заново создайте прокси в другом файле

Спасибо, Себастьян

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...