Разоблачение структуры классов через WCF? - PullRequest
0 голосов
/ 31 мая 2011

У меня есть простой класс, который содержит необходимые свойства для запроса к услуге.

Я хочу, чтобы потребитель создал экземпляр этого класса на своем конце, заполнил его, а затем передал его обратно в службу. Возможно, терминология, которую я использую, не совсем верна, но я уверен, что в прошлом я читал некоторые заметки о проектах, где это было возможно в других системах.

[DataContract]
public class SearchRequestObject
{
    [DataMember]
    public string WebsiteGuid { get; set; }

}

В моем сервисном проекте установлены и DataContract, и DataMember. После того, как я опубликую его и использую в другом проекте, я не вижу SearchRequestObject. Я предполагаю, что это потому, что это должно быть определено в интерфейсе сервиса? Если да, то как?

Спасибо.

1 Ответ

1 голос
/ 31 мая 2011

Как правило, SearchRequestObject будет одним из объектов, используемых в одном из ваших методов обслуживания, например:

[ServiceContract(ConfigurationName = "IWCFService")]
public interface ICascadeManagementService
{
    [OperationContract(Action = "http://tempuri.org/IWCFService/DoSearch")]
    SearchResponseObject DoSearch(SearchRequestObject searchRequest);
}

Когда ваши клиентские классы будут автоматически сгенерированы, они будут включать SearchRequestObjectв файле reference.cs, который содержит определения.

Если он уже включен в метод, он может не генерироваться, поскольку ваш клиентский проект имеет прямую ссылку на проект, в котором определено SearchRequestObjectи когда вы создаете ссылку на службу, вы повторно используете типы из сборок, на которые ссылаются.Вы можете проверить, есть ли у вас ссылка в списке ссылок клиентского проекта, и не используете ли вы типы из ссылочных сборок в разделе «Дополнительно» диалогового окна «Добавить ссылку на службу».

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