gpt4 book ai didi

c# - 看不到 DLL 中的类

转载 作者:行者123 更新时间:2023-11-30 18:59:12 25 4
gpt4 key购买 nike

我已经创建了一个 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 使用时出现吗?

非常感谢

最佳答案

使其公开:

public static class GlobalClass
{
...
}

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

关于c# - 看不到 DLL 中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13271858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com