这是一个设计问题。我已经在两个C#应用程序之间阅读了很多关于IPC的不同内容,但是我觉得我的用例没有得到满意的答案。
在我的第一个应用程序中,我有一个已经存在的对象,它将每隔几毫秒频繁更改一次。我试图将它附加到用Unity3d编程的游戏( - >第二个应用程序)。根据stackoverflow的早期问题,似乎序列化是不合适的,因为我基本上每隔几毫秒就会对这个对象进行序列化/反序列化,这是没有充分理由的。这使我进入WCF服务:第一个应用程序充当主机,第二个应用程序(Unity程序)充当客户端。到目前为止,这有意义吗?
接下来,我想记录从第一个应用程序发送到第二个应用程序的所有数据。这里的初始目标是第二个应用程序应该能够提供在早期会话中记录的数据。当第一个应用程序的新数据可能不可用时,其目的主要是针对发展问题。
我可以使用WCF记录和回放在两个应用程序之间交换的数据(即整个数据流)吗?
答案 0 :(得分:0)
要记录WCF的每个输出,您可以实现一个自定义记录器(例如,nlog或log4net),将信息保存到任何自定义数据存储中(SqlServer,Mongo,Raven DB取决于您的需要)
//[OperationContractAttribute]
public int[] GetUnitPosition(string guid)
{
int x = 0, y = 0;
//calculate something..
//then Log this information
Logger.Info("position", guid, x, y); //save this into any DB
return new[] {x, y};
}
然后检索保存的数据。只需实现另一个从日志存储中查询历史数据的WCF服务。