我想確保我有正確的代碼以便對我的web服務進行異步調用。如果有人可以請求幫助,我將非常感激。異步調用wcf 4.5 WCF服務
我正在使用Visual Studio 2013與4.5.1框架。
我在我的客戶端應用程序下面的代碼使該服務的調用:
public async Task<ActionResult> Read([DataSourceRequest]DataSourceRequest request)
{
try
{
YeagerTechWcfService.Status[] status = await db.GetStatusesAsync();
var serializer = new JavaScriptSerializer();
var result = new ContentResult();
serializer.MaxJsonLength = Int32.MaxValue;
result.Content = serializer.Serialize(status.ToDataSourceResult(request));
result.ContentType = "application/json";
return result;
}
在我的WCF服務合同,我有以下爲上述方法調用:
[ServiceContract]
public interface IYeagerTechWcfService
{
[OperationContract]
Task<List<Status>> GetStatusesAsync();
我在我的Web服務類中具有以下相同方法的接口類:
public class YeagerTechWcfService : IYeagerTechWcfService
{
public async Task<List<Status>> GetStatusesAsync()
{
try
{
using (YeagerTechEntities DbContext = new YeagerTechEntities())
{
DbContext.Configuration.ProxyCreationEnabled = false;
DbContext.Database.Connection.Open();
var status = await DbContext.Status.ToListAsync();
return status;
}
}
catch (Exception)
{
throw;
}
}
根據我進一步閱讀的內容,我還需要在OperationContract屬性之後放置以下內容: * 這是真的嗎? *
[OperationContractAttribute(AsyncPattern = true)]
IAsyncResult BeginGetStatusesAsync(AsyncCallback callback, object asyncState);
string EndGetStatusesAsync(IAsyncResult result);
我並不總是打電話給WCF服務,但是當我這樣做時,我會不經意地給他們打電話。 – Will