无法从其他应用程序读取 Azure 缓存数据
本文关键字:Azure 缓存 数据 读取 应用程序 其他 | 更新日期: 2023-09-27 18:34:37
我使用以下代码进行 Azure 缓存,它工作正常......
[Serializable]
public class Person
{
public string First { set; get; }
public string Last { set; get; }
}
[TestClass]
public class AzureCachingTests1
{
private static DataCacheFactory _factory;
[TestInitialize]
public void Setup()
{
_factory = new DataCacheFactory(new DataCacheFactoryConfiguration("mycache"));
}
[TestMethod]
public void TestMethod1()
{
DataCache cache = _factory.GetDefaultCache();
var person = new Person { First = "Jane", Last = "doe" };
const string key = "mykey";
cache.Put(key, person, TimeSpan.FromMinutes(10));
var data = (Person)cache.Get(key);
Assert.AreEqual("Jane", data.First);
}
}
现在,在Visual Studio的另一个实例中,我运行以下代码...
[TestClass]
public class AzureCachingTests
{
private static DataCacheFactory _factory;
[TestInitialize]
public void Setup()
{
_factory = new DataCacheFactory(new DataCacheFactoryConfiguration("mycache"));
}
[TestMethod]
public void TestMethod1()
{
DataCache cache = _factory.GetDefaultCache();
const string key = "mykey";
var data = (Person) cache.Get(key); <----- Error here... <--------
Assert.AreEqual("Jane", data.First);
}
}
[Serializable]
public class Person
{
public string First { set; get; }
public string Last { set; get; }
}
这次,我收到以下错误...
测试方法 AzureCaching.AzureCachingTests.TestMethod1 抛出了异常:System.Runtime.Serialization.SerializationException: 找不到程序集"AzureCaching1, version=1.0.0.0, Culture=neutral, PublicKeyToken=null"。
我的类人是可序列化的。为什么我无法查询我在 AzureCaching1 中缓存的 Azure 缓存中的缓存?
请帮忙。谢谢
除非引用了 AzureCachingTests1 所在的项目,否则测试不知道如何反序列化它从缓存中检索的项。 您有两个具有相同名称和相同属性的类,但它们不是同一个类。
由于这是你正在编写测试,因此需要从 AzureCachingTests 所在的项目中引用 AzureCachingTests1 所在的项目,并删除 AzureCachingTests 项目中 Person 的类定义(并确保你也强制转换为正确的类(。
如果这不是一个测试,并且您只想在两个或多个项目之间共享一个类,那么最好的主意是让第三个项目包含两个项目共有的所有类,在这种情况下,它只是 Person 类。