2011-11-04 81 views
2

小背景:我正在编写一组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,这是我试图简化和隐藏的库!我究竟做错了什么?为什么我的课没有出现在最终的图书馆?

感谢您的帮助!

+3

您是否检查过类的访问修饰符是“公共”? – Alleo

+0

这是我的问题。我没有意识到他们需要明确标记为公开。来自脚本语言和C,并没有立即出现。 –

回答

5

需要查看代码才能确定,但​​需要检查一些事项; 1.您是否在所有类中正确命名了命名空间?文件夹结构并不重要,它的名称空间属性是重要的。 2.您的课程是否公开?

除此之外,请张贴一些示例代码..

+0

课程不公开。去改变它并测试... –

+0

谢谢先生!这些班级没有被明确标示为公开。你救了我很多挫折=) –