无法在C#中的派生类中访问基类属性

时间:2016-06-18 05:22:47

标签: c# properties

这是我的基类

public class AttachmentBase
{
    public AttachmentBase ();

    public string[] Content { get; set; }
    public string FileExtension { get; set; }
    public string FileName { get; set; }
    public long Id { get; set; }
}

这是我的派生类

public class Attachment:AttachmentBase
{
    public string Title { get; set; }
    public string Description { get; set; }
}

以下是我在mvc controller

中实例化新附件的方法
var attachmnet = new Attachment();

但是当我想访问基类中的FileExtension或其他属性时,我无法访问它们。一切都是公开的,但我无法访问它们。

我应该说另一个dll中的基类,但我已经添加了对项目的引用。

什么是我无法在派生类中访问基类属性的问题?

3 个答案:

答案 0 :(得分:1)

如果您只是创建基类和派生类,那么您无法解决此问题。从你所说的,似乎发生这种情况是因为你在一个项目(= assembly = dll)中创建了基类,而在另一个项目中创建了派生的基类,而不是让第二个项目引用第一个,你让它引用了一个副本已编译的dll。这种方式当然无法实时获得第一个项目的变化。

当项目引用另一个项目时,Visual Studio始终会重新编译所需的所有内容。

答案 1 :(得分:0)

您的支票命名空间了吗? 因为“AttachmentBase”类位于“System.Net.Main”命名空间下,并且您可能忘记添加“AttachmentBase”所在的正确项目命名空间。

答案 2 :(得分:-2)

删除项目中对Attachment base dll的引用,再次添加,并重建解决方案。

我可以理解为什么c#不能明智地选择生产力。