对象无法访问,因为它';s在引用C#MVC控制器中的成员时的保护级别
本文关键字:控制器 C#MVC 引用 成员 保护 访问 因为 对象 | 更新日期: 2023-09-27 18:27:10
我的控制器的Index()方法引用了一个类型(ExternalSourceProvider),该类型在控制器的开头被指定为成员:
ExternalSourceProvider externalSource;
// GET: Index
public ActionResult Index()
{
externalSource = new ExternalSourceProvider();
ExternalSourceProvider()出现错误;在最后一行,说由于它的保护级别,它无法访问。以下是ExternalSourceProvider的定义:
public class ExternalSourceProvider
{
ExternalSourceProvider() { }
public string ExternalSiteAbsoluteURI { get; set; }
我错过了什么?
您必须将默认构造函数标记为public。
public class ExternalSourceProvider
{
public ExternalSourceProvider() { }
public string ExternalSiteAbsoluteURI { get; set; }
}
现在,无法访问
externalSource = new ExternalSourceProvider();
默认构造函数是private
(如果未指定类成员,则为类成员的默认可访问性),因此无法构造对象。使其成为public
:
public ExternalSourceProvider() { }
如果只希望同一程序集中的其他类型构造该类型,也可以将其设为internal
,但通常公共类应该至少有一个公共构造函数。