从另一个命名空间引用字典的存储值

Reference stored values of a dictionary from another namespace

我正在将术语存储到一个有点复杂(至少对我而言)类型的字典中:

Dictionary<string, Term>  

其中 "Term" 是我用 "Occurrences" 的列表定义的 class,如下面的代码所示。

 namespace SomeNameSpace
 {
    public class Occurence
    {
        public int docID { get; set; }
        public int termOcc { get; set; }
    }

    public class Term
    {
        public int numbOfDocuments { get; set; }
        public int lastDocAdd { get; set; }
        public int termCount { get; set; }

        public List<Occurence> docOccurances = new List<Occurence>();
    }

    public class TermDictionary
    {
        public Dictionary<string, Term> termOccurence = new Dictionary<string, Term>();
    }

    public static void SomeMethod()
    {
        TermDictionary TermDictionary = new TermDictionary();
 .
 .
 .

当 void 函数 "SomeMethod" 完成时,调用命名空间有一个 return,它不是 "SomeNameSpace" 而是其他一些命名空间。

我想使用其他命名空间中字典中的存储值,以便我可以根据用户输入的查询访问字典。

有没有办法让这个字典中的数据持久化,以便我可以从另一个名称空间访问它?或者也许是一种将字典传递给其他命名空间的方法,以便我可以在那里使用它?

名称空间在这里不太相关。您应该考虑的实际边界是 class 边界。我如何在 class 之间获取信息?命名空间只是将志同道合的 class 标记在一起的合乎逻辑的方式。

也就是说,返回字典是实现您想要的目标的一种粗略方式。但这里的问题是它是你的内部状态,另一个 class 可以改变它。因此,要么以只读字典的形式愉快地发送它,要么将其包装在一个小服务接口中,该接口只公开一个查找方法来隐藏内部结构——在这种情况下是字典本身。