Имя контракта конечной точки WCF - как его назначить, если оно является общим? - PullRequest
0 голосов
/ 23 июня 2011
  • IGenericService находится в сборке с именем: "ABC.Server.Common" (ABC.Server.Common.dll)
  • MyType находится в сборке с именем: "ABC.Server.Modules.X"(ABC.Server.Modules.X.dll)

КОД:

public class ABC.Server.Modules.XService :
    ABC.Server.Common.IGenericService<ABC.Server.Module.X.MyType>
{
    ABC.Server.Common.GenericResponse<ABC.Server.Module.X.MyType> DoFoo(ABC.Server.Common.GenericRequest<ABC.Server.Module.X.MyType> request)
    {
        //Do Stuff Here
    }
}

Сжатый код:

public class XService :
    IGenericService<MyType>
{
    GenericResponse<MyType> DoFoo(GenericRequest<MyType> request)
    {
        //Do Stuff Here
    }
}

Web.config: Я не использую SVC-файлы, вместо этого у меня есть эта информация в Web.config:

<add factory="System.ServiceModel.Activation.ServiceHostFactory"
     relativeAddress="Services/X.svc"
     service="ABC.Server.Modules.X.XService"/>

<service name="ABC.Server.Modules.X.XService"
         behaviorConfiguration="StandardBehavior">
  <endpoint bindingConfiguration="StandardBinding"
            binding="basicHttpBinding"
            contract="?" />
</service>

Что я добавлю в название контракта, чтобы оно действительно заработало?

1 Ответ

5 голосов
/ 23 июня 2011

В общем вы можете узнать, что WCF ожидает от вас для ContractName, используя следующий фрагмент кода:

ContractDescription.GetContract(typeof(IGenericService<MyType>)).ConfigurationName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...