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

时间:2015-04-21 22:12:07

标签: c# .net dictionary namespaces

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

Dictionary<string, Term>  

其中“Term”是我使用“Occurrences”列表定义的类,如下面的代码所示。

 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”完成时,返回调用命名空间,这不是“SomeNameSpace”,而是一些其他命名空间。

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

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

1 个答案:

答案 0 :(得分:1)

命名空间在这里不那么重要。你应该考虑的实际边界是阶级边界。如何在课程之间获取信息?命名空间只是一种标记类似于类的类的逻辑方式。

那说返回字典是实现你想要的原始方式。但这里的问题是它是你的内部状态而另一个类可以改变它。因此,要么以快乐的方式将其作为只读字典发送,要么将其包装在一个小的服务接口中,该接口只是暴露一个查找方法来隐藏内部 - 在这种情况下是字典本身。