複数のアプリケーションで使用するクラスと、LINQによって作成されたDBMLを格納するDLLを作成しました。
私が抱えている問題は、コンパイルされた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を介して使用したときに表示されないようになっていますか?
どうもありがとう