[英]Add reference to project in c#
我有一些奇怪的问题。 我有以下结构的解决方案
http://i33.tinypic.com/10fbzbq.jpg
如您所见,当我要导入VDB.Common.RequestAndResponses时,它将产生错误。 dat类库的名称空间是VDB.Common.RequestAndResponses。
我是c#的新手,所以可能是我忘记了一些愚蠢的东西。
我强烈怀疑Base.cs
(中所示的只有C#文件VDB.Common.RequestAndResponses
项目) 实际上并没有宣布在a型VDB.Common.RequestAndResponses
命名空间-或者说,它只是声明了一个内部 (而非公共 )类型。
例如,请注意,您正在创建的代码在VDB.Client.Infrastructure
项目下,但是仅在Agatha
命名空间中声明一个类-而不是VDB.Client.Infrastructure.Agatha
,这可能正是您想要的。 也许在Base.cs
有同样的事情?
没有看到Base.cs中的代码,我们看不到出了什么问题。 如果您只可以发布一个代码段-仅命名空间和类声明-将会很有帮助。
请注意,尽管类库具有默认的名称空间,但它并不在源文件实际声明的名称之前。 换句话说,在Acme.Widgets
库中,如果您声明:
namespace Web
{
public class Button {}
}
这只会申报类型Web.Button
, 不 Acme.Widgets.Web.Button
。
编辑:OP的“答案”证实了我的想法...基本上,它根本没有声明名称空间。 它应该如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Agatha.Common;
namespace VDB.Common.RequestAndResponses
{
public abstract class BaseRequest :Request
{
// Code
}
public abstract class BaseResponse : Response
{
// Code
}
}
我也强烈建议将这些类放在两个单独的文件BaseRequest.cs
和BaseResponse.cs
。 我也很惊讶地看到对Agatha.Common
的引用-那不应该是VDB.Common.Agatha
或类似的东西吗?
在解决方案资源管理器中的“ VDB.Common.RequestAndResponses”引用上单击鼠标右键,然后选择“在对象浏览器中显示”,确保在该名称空间中找到准确的拼写和大写字母。
尝试在客户端代码中使用Base类,并将其悬停在上面,并允许Visual Studio IDE提示您添加适当的名称空间。 在基类中定义的名称空间可能与您所想的不同。
编辑正如乔恩在回答第二部分中所展示的那样-代码文件的名称不会自动对应于名称空间。
Base.cs文件如下所示。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Agatha.Common;
public abstract class BaseRequest :Request
{
public string UserName { get; set; }
public string UserDomainName { get; set; }
public string ClientLanguageCode { get; set; }
public DateTime ClientCreated { get; set; }
public DateTime ClientSent { get; set; }
public DateTime ServerReceived { get; set; }
public DateTime ServerProcessed { get; set; }
public void BeforeSend(IUserContext context)
{
ClientSent = DateTime.UtcNow;
UserName = context.UserName;
UserDomainName = context.UserDomainName;
ClientLanguageCode = context.LanguageCode;
}
}
public abstract class BaseResponse : Response
{
public DateTime ServerCreated { get; set; }
public DateTime ServerProcessed { get; set; }
public string[] ValidationErrors { get; set; }
public bool IsValid
{
get { return Exception == null & !ValidationErrors.Any(); }
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.