また、WCF サービスを Web アプリケーションに直接含めて、JSON を返したり受け取ったりするように構成することもできます。それらは次のようになります。
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class YourServiceDoesJSON
{
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public ReturnTypeThatWillBeTransformedIntoJSON GetWhatever(string parameterIfYouNeed)
{
// do something
return new ReturnTypeThatWillBeTransformedIntoJSON();
}
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json)]
public SomethingElse PostWhatever()
{
...
}
}
このサービスの構成ファイルは次のようになります。
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="WebApp.Folder.YourServiceDoesJSONAspNetAjaxBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="MetadataBehaviors" >
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
<service name="WebApp.Folder.YourServiceDoesJSON" behaviorConfiguration="MetadataBehaviors">
<endpoint address="" behaviorConfiguration="WebApp.Folder.YourServiceDoesJSONAspNetAjaxBehavior"
binding="webHttpBinding" contract="WebApp.Folder.YourServiceDoesJSON" />
</service>
</services>
注: これは、Web アプリケーションを MVC に変換するのがとても簡単であることを知る前に、私が行った方法です。私の以前の回答を参照してください;)