【发布时间】:2017-05-01 15:23:36
【问题描述】:
我有一个输出类库 (.DLL) 的项目 - 但我遇到了一个问题,它只导出默认命名空间中定义的类的信息。有没有办法告诉 VisualStudio 将所有命名空间输出到 DLL 中,而不仅仅是默认的?
该项目的默认命名空间为“CALWrap”。然后,基本上相当于:
namespace CALWrap
{
public class CALContentManager : ContentManager {}
}
// ... meanwhile, in a linked .cs file elsewhere in the code:
namespace Common
{
public class ContentManager {}
}
我的问题是,我需要在构建 DLL 时也导出 Common.ContentManager,但因为它位于不同的命名空间中,所以它不包含在 DLL 中:当我在单独的项目中引用 DLL 时,我可以' t 访问该类。
【问题讨论】:
-
ContentManager和CALContentManager是同一个 DLL 的一部分? -
不知道怎么回答。生成 DLL 的项目具有两个类的 .cs 代码。我假设 ContentManager 在 DLL 输出文件中的某个位置,但它没有暴露/可见?我尝试在其中一个主要的 .cs 文件中进行测试,我创建了一个新的命名空间并创建了一个测试类。被另一个 VS 项目引用时无法访问。当我将命名空间改回 CALWrap 时,它就可以访问了。
-
奇怪...您是否尝试使用定义它的命名空间来访问该类?例如
Common.ContantManager? -
你知道吗,我想你可能已经解决了这个问题。我将我的最终 .DLL 称为“CALWrap”。所以当我在另一个项目中引用它时,我愚蠢地输入了“CALWrap....”,以为我指的是 DLL...但我点击的是 namespace,不是我?我要回去了,看看能不能直接打命名空间。
-
是的。这就是问题所在。 Chetan,你想发表一个答案,以便我给你一些积分吗?
标签: c# .net dll namespaces