创建C#DLL,我做错了什么?
小背景:我正在编写一组C#类来将SOAP连接器包装到称为Jira的另一个系统中。 Jira公开的SOAP连接器有太多的功能用于我的目的,所以我试图简化接口。创建C#DLL,我做错了什么?
我的设置:在C#/ Visual Studio 2010中,我的解决方案奠定了如下:
JiraService
Properties/
AssemblyInfo.cs
Settings.settings/
References/
...
System.Web.Services
Web References
devjira.soap /* my connector to the jira soap reference i'm wrapping */
Types/ /* these are data classes i'm trying to expose for the user */
Comment.cs
Issue.cs
Project.cs
User.cs
app.config
Jira.cs /* main class I'm trying to provide to user */
Jira.cs是在JiraService
命名空间。 Comment.cs,Issue.cs,Project.cs和User.cs都位于JiraService.Types
名称空间中。 Jira.cs基本上公开了一些方法,这些方法可以获取或返回Types
目录中的类。在属性下,我将Default命名空间设置为JiraService,将Output类型设置为Class Library。
我的问题:当我构建解决方案时,我得到了JiraService.dll
。当我将此引用添加到另一个项目时,Jira,Comment,Issue,Project和User类不在所包含的.dll的JiraService或JiraService.Types命名空间中。唯一可用的命名空间是JiraService.devjira.soap
,这是我试图简化和隐藏的库!我究竟做错了什么?为什么我的课没有出现在最终的图书馆?
感谢您的帮助!
需要查看代码才能确定,但需要检查一些事项; 1.您是否在所有类中正确命名了命名空间?文件夹结构并不重要,它的名称空间属性是重要的。 2.您的课程是否公开?
除此之外,请张贴一些示例代码..
课程不公开。去改变它并测试... –
谢谢先生!这些班级没有被明确标示为公开。你救了我很多挫折=) –
您是否检查过类的访问修饰符是“公共”? – Alleo
这是我的问题。我没有意识到他们需要明确标记为公开。来自脚本语言和C,并没有立即出现。 –