在DLL中看不到类

我创建了一个DLL来容纳一个我想在多个应用程序中使用的类,以及LINQ创建的DBML。

我遇到的问题是,当编译的DLL被设置为引用时,该类在外部应用程序中不可见/可用,尽管所有LINQ对象都是。 此外,当我手动导入.cs文件,然后我可以按预期使用该类。

我已经将类构建为静态,代码如下:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using System.Data; namespace OsgShared { static class GlobalClass { public static USER CurrentUser { get; set; } private static Dictionary _SysDetIDs; public static Dictionary SysDetIDs { get { return _SysDetIDs; } } private static Dictionary _AccInfoTypeIDs; public static Dictionary AccInfoTypeIDs { get { return _AccInfoTypeIDs; } } private static Dictionary _AccGroupTypeIDs; public static Dictionary AccGroupTypeIDs { get { return _AccGroupTypeIDs; } } private static Dictionary _EntTypeIDs; public static Dictionary EntTypeIDs { get { return _EntTypeIDs; } } ///  /// Populates Dictionary objects containing database reference data ///  public static void PopulateDictionaries() { _SysDetIDs = new Dictionary(); _AccInfoTypeIDs = new Dictionary(); _AccGroupTypeIDs = new Dictionary(); _EntTypeIDs = new Dictionary(); OsgDBDataContext db = new OsgDBDataContext(); // Populates Dictionaries here db.Dispose(); } } } 

我是如何设置这个类以防止它在通过DLL使用时出现的?

非常感谢

public

 public static class GlobalClass { ... } 

类的默认可访问性是internal :仅对同一程序集内的代码可见。 这就是为什么当你将它作为.cs包含在项目中时它确实有效。

public添加到类中,它没有修饰符,因此它在dll中是私有的。