无法从其他应用程序读取 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 缓存中的缓存?

请帮忙。谢谢

无法从其他应用程序读取 Azure 缓存数据

除非引用了 AzureCachingTests1 所在的项目,否则测试不知道如何反序列化它从缓存中检索的项。 您有两个具有相同名称和相同属性的类,但它们不是同一个类。

由于这是你正在编写测试,因此需要从 AzureCachingTests 所在的项目中引用 AzureCachingTests1 所在的项目,并删除 AzureCachingTests 项目中 Person 的类定义(并确保你也强制转换为正确的类(。

如果这不是一个测试,并且您只想在两个或多个项目之间共享一个类,那么最好的主意是让第三个项目包含两个项目共有的所有类,在这种情况下,它只是 Person 类。