インターフェース:
[OperationContract]
[WebGet(UriTemplate = "GetAll",
BodyStyle = WebMessageBodyStyle.Wrapped)]
List<Custom> GetAll();
//Custom は edmx/mssql のエンティティです
Add service reference
インターフェイスとデータベースに基づいてVisualStudioクラスのツールで生成しました(Custom
テーブル)
App.config:
<?xml version="1.0" encoding="utf-8"?>
<system.serviceModel>
<services>
<service name="CustomService" behaviorConfiguration="rest">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="" behaviorConfiguration="webHttpBehavior"
contract="ICustomService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webHttpBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="rest">
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="True" httpHelpPageEnabled="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
クライアント:
WebChannelFactory<ICustomService> cf = new WebChannelFactory<ICustomService>(
new Uri("http://172.30.1.2/Design_Time_Addresses/ICustomService"));
ICustomService channel = cf.CreateChannel();
var result = channel.GetAll();//here I get exception
この方法を正しく使用するには?