私はEntityフレームワークのPOCOクラスに基づいた簡単なプロトタイプWCFサービスを用意しています。応答形式を指定せずに公開されたメソッドの1つを実行すると、期待されるデータがXML形式でブラウザに返されます。しかし、私が "ResponseFormat = WebMessageFormat.Json"を指定すると、ブラウザにデータは返されません。私がFiddlerを使って何が起こっているのかをもっと調べると、ブラウザへの応答は "ReadResponse()failed:"というメッセージが表示されます。ここでWCFサービス - JSON - 返されないデータ
は、サービス契約です:
[ServiceContract]
public interface ITimeService
{
[OperationContract]
[WebGet(UriTemplate = "/Customer?ID={customerID}", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
Customer GetCustomer(string customerID);
[OperationContract]
[WebGet(UriTemplate = "/Customers", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
List<Customer> GetCustomers();
[OperationContract]
[WebGet(UriTemplate = "/Tasks/?CustomerID={customerID}", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
List<Task> GetTasks(string customerID);
}
と実装:
public Customer GetCustomer(string customerID)
{
var ID = new Guid(customerID);
var context = new PinPointTimeEntities();
var customer = context.Customers.Include("TimePeriods").Include("Tasks").Where(c => c.ID == ID).SingleOrDefault<Customer>();
return customer;
}
public List<Customer> GetCustomers()
{
var context = new PinPointTimeEntities();
var customers = context.Customers.ToList();
return customers;
}
public List<Task> GetTasks(string customerID)
{
var ID = new Guid(customerID);
var context = new PinPointTimeEntities();
var tasks = context.Tasks.Include("TimePeriods").Where(c => c.CustomerID == ID).ToList();
return tasks;
}
ノー成功と示唆したソリューションの数を試みました。私はそれが簡単な設定か必要なものだと思います。データがjson形式で正常に返されるためには、何が必要ですか?
サービス契約または作業中の方法を投稿することはできますか?あなたはまた、そのサービスメソッドの実装を投稿できますか? –