我创建了一个 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<string,int> _SysDetIDs;
public static Dictionary<string,int> SysDetIDs { get { return _SysDetIDs; } }
private static Dictionary<string, int> _AccInfoTypeIDs;
public static Dictionary<string, int> AccInfoTypeIDs { get { return _AccInfoTypeIDs; } }
private static Dictionary<string, int> _AccGroupTypeIDs;
public static Dictionary<string, int> AccGroupTypeIDs { get { return _AccGroupTypeIDs; } }
private static Dictionary<string, int> _EntTypeIDs;
public static Dictionary<string, int> EntTypeIDs { get { return _EntTypeIDs; } }
/// <summary>
/// Populates Dictionary objects containing database reference data
/// </summary>
public static void PopulateDictionaries()
{
_SysDetIDs = new Dictionary<string,int>();
_AccInfoTypeIDs = new Dictionary<string,int>();
_AccGroupTypeIDs = new Dictionary<string,int>();
_EntTypeIDs = new Dictionary<string, int>();
OsgDBDataContext db = new OsgDBDataContext();
// Populates Dictionaries here
db.Dispose();
}
}
}
我设置这个类的方式有什么明显的错误,阻止它在通过 DLL 使用时出现?
非常感谢