gpt4 book ai didi

c# - WCF - 两种方法之间的通信

转载 作者:行者123 更新时间:2023-12-02 05:35:50 28 4
gpt4 key购买 nike

我有一个 WCF 客户端,它使用两种方法请求订单确认和 WCF 服务:

1) UpdateOrder - 更新数据库中的订单数据(UpdateOrder 调用来自外部服务)
2) GetConfirmationResult - 保存结果返回,直到订单状态从待定状态变为其他状态。

问题是,如何在 WCF 中从 UpdateOrder 通知 GetConfirmationResult,订单状态已经改变?

更新:最好,如果我可以将 InstanceContextMode 保留为 Per-Call。

更新 2:假设可能的订单状态为待处理、已确认、已拒绝。 ConfirmOrder 可能会将订单状态更改为 Confirmed 或 Rejected,GetConfirmationResult 不应返回结果,直到它被 Confirm 订单更改。

更新 3:我更改了带有序列的图像以显示整个堆栈。

enter image description here

最佳答案

你说你有一个数据库支持这个服务器。然后就这么简单,半伪:

public YourService : YourServiceInterface
{
public void UpdateOrder(Order order)
{
using (context = new DatabaseContext())
{
context.Orders.Where(o => o.ID == order.ID).First().IsConfirmed = order.IsConfirmed;
context.SaveChanges();
}
}

public Boolean? GetConfirmationResult(Order order)
{
using (context = new DatabaseContext())
{
return context.Orders.Where(o => o.ID == order.ID).First().IsConfirmed;
}
}
}

您必须坚持使用它,因为您提到的是按调用实例模式。你不能保留 static List<Order>要包含您的待处理订单,只需将它们保存到您的数据库并将它们添加为待处理而非已批准。

关于c# - WCF - 两种方法之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11734862/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com