C# 如何在独立应用程序域中运行的应用程序之间共享缓存数据?

C# 如何在独立应用程序域中运行的应用程序之间共享缓存数据?,c#,caching,enterprise-library,C#,Caching,Enterprise Library,基本上,我有两个独立的应用程序,它们是AppA和AppB。我已经实现了中提供的缓存功能 "Microsoft.Practices.EnterpriseLibrary.Caching.dll" and "Microsoft.Practices.EnterpriseLibrary.Common.dll". 我希望使用AppA添加缓存 var cacheManager = CacheFactory.GetCacheManager(); cacheManager.Add("SharedData"

基本上,我有两个独立的应用程序,它们是AppA和AppB。我已经实现了中提供的缓存功能

 "Microsoft.Practices.EnterpriseLibrary.Caching.dll" and "Microsoft.Practices.EnterpriseLibrary.Common.dll".
我希望使用AppA添加缓存

 var cacheManager = CacheFactory.GetCacheManager();
 cacheManager.Add("SharedData","Data from AppA");
现在,我希望下一个应用程序“AppB”检索这个值

 var cacheManager = CacheFactory.GetCacheManager();
 var data = cacheManager.GetData("SharedData");

这些应用程序是否可能在不同的应用程序域中运行。如果没有,有人能给我推荐其他方法来实现这种行为吗?

您应该探索分布式缓存,它允许您跨多个应用程序访问缓存。Redis就是这样一个缓存提供者。有多个.Net客户端可用于访问Redis缓存。Redis就是这样一个客户机。您可以在此处阅读更多信息,在此处您可以找到有关

的详细信息,您可以使用tcp之间共享的序列化数据,也可以不使用SQL数据库-这一切都取决于您的需要。是否有当前可用的示例,如果有,请与我共享?基于tcp的聊天应用程序。通过使用
MarshallByRefObject
s包装访问,您可以在同一进程但不同域中运行的应用程序之间共享数据,但这样的解决方案将在您开始将内容拆分为进程时停止工作。这是什么类型的应用程序?Web应用程序,Windows应用程序,其他东西?同意,虽然我仍然认为TCP连接作为一种选择。使用分布式缓存是正确的答案;不要试图用自定义TCP(为什么?)连接自己构建。您还可以使用抽象来不直接处理Redis客户机,如