代码之家  ›  专栏  ›  技术社区  ›  João Menighin

NET-动态清除地图

  •  0
  • João Menighin  · 技术社区  · 5 年前

    我正在创建几个映射来为我的应用程序缓存一些信息。 我有一个需要清除的所有地图名称的列表,但我找不到一种方法来动态获取这些地图以清除它们。基本上我有:

    var mapsNames = ["map-1", "map-2", "map-3"];
    

    我想要一个简单的方法来做事情,比如:

    var client = HazelcastClient.NewHazelcastClient();
    foreach (var name in mapsNames)
    {
        var map = client.GetMap(name);
        map.Clear();
    }
    

    README.md 我们有一些例子,比如:

    var client = HazelcastClient.NewHazelcastClient();
    
    var personnelMap = client.GetMap("personnelMap");
    personnelMap.Put("Alice", "IT");
    personnelMap.Put("Bob", "IT");
    personnelMap.Put("Clark", "IT");
    Console.WriteLine("Added IT personnel. Logging all known personnel");
    foreach(var entry in personnelMap.entrySet())
    {
        Console.WriteLine("{0} is in {1} department", entry.Key, entry.Value );
    }
    client.Shutdown();
    

    这表明我们应该有一个方法 GetMap GetMap<TKey, TValue> . 文件有错吗?有没有一种方法可以在不使用难看的反射的情况下按名称获取地图吗?

    0 回复  |  直到 5 年前
        1
  •  0
  •   ihsan demir    5 年前

    你试过了吗( ICollection<IDistributedObject> GetDistributedObjects() ) https://github.com/hazelcast/hazelcast-csharp-client/blob/v3.12.1/Hazelcast.Net/Hazelcast.Client/HazelcastClient.cs#L230

    您可以迭代所有现有的映射,并且可以使用 https://github.com/hazelcast/hazelcast-csharp-client/blob/v3.12.1/Hazelcast.Net/Hazelcast.Core/IDistributedObject.cs#L53 要检查的是分布式对象是否属于映射服务类型。

    推荐文章