这是我的基类
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中的基类,但我已经添加了对项目的引用。
什么是我无法在派生类中访问基类属性的问题?
答案 0 :(得分:1)
如果您只是创建基类和派生类,那么您无法解决此问题。从你所说的,似乎发生这种情况是因为你在一个项目(= assembly = dll)中创建了基类,而在另一个项目中创建了派生的基类,而不是让第二个项目引用第一个,你让它引用了一个副本已编译的dll。这种方式当然无法实时获得第一个项目的变化。
当项目引用另一个项目时,Visual Studio始终会重新编译所需的所有内容。
答案 1 :(得分:0)
您的支票命名空间了吗? 因为“AttachmentBase”类位于“System.Net.Main”命名空间下,并且您可能忘记添加“AttachmentBase”所在的正确项目命名空间。
答案 2 :(得分:-2)
删除项目中对Attachment base dll的引用,再次添加,并重建解决方案。
我可以理解为什么c#不能明智地选择生产力。