title: Can't see class within DLL
body: <p>I have created a DLL to house a class that I want to use across multiple applications, as well the DBML created by LINQ.</p>
  
  <p>The problem I am having is that the class is not visible/usable from external applications when the compiled DLL is set as a reference, although all the LINQ objects are. Also, when I manually import the .cs file then I can use the class as expected.</p>
  
  <p>I have built the class as static, and the code is as follows:</p>
  
  <pre><code>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&lt;string,int&gt; _SysDetIDs;
          public static Dictionary&lt;string,int&gt; SysDetIDs { get { return _SysDetIDs; } }
  
          private static Dictionary&lt;string, int&gt; _AccInfoTypeIDs;
          public static Dictionary&lt;string, int&gt; AccInfoTypeIDs { get { return _AccInfoTypeIDs; } }
  
          private static Dictionary&lt;string, int&gt; _AccGroupTypeIDs;
          public static Dictionary&lt;string, int&gt; AccGroupTypeIDs { get { return _AccGroupTypeIDs; } }
  
          private static Dictionary&lt;string, int&gt; _EntTypeIDs;
          public static Dictionary&lt;string, int&gt; EntTypeIDs { get { return _EntTypeIDs; } }
  
          /// &lt;summary&gt;
          /// Populates Dictionary objects containing database reference data
          /// &lt;/summary&gt;
          public static void PopulateDictionaries()
          {
              _SysDetIDs = new Dictionary&lt;string,int&gt;();
              _AccInfoTypeIDs = new Dictionary&lt;string,int&gt;();
              _AccGroupTypeIDs = new Dictionary&lt;string,int&gt;();
              _EntTypeIDs = new Dictionary&lt;string, int&gt;();
  
              OsgDBDataContext db = new OsgDBDataContext();
  
              // Populates Dictionaries here
  
              db.Dispose();
          }
      }
  }
  </code></pre>
  
  <p>Is there anything obviously wrong with how I've set this class up that's preventing it from appearing when used via a DLL?</p>
  
  <p>Many thanks</p>