当前位置:  开发笔记 > 编程语言 > 正文

由于引用C#MVC控制器中的成员时的保护级别,对象无法访问

如何解决《由于引用C#MVC控制器中的成员时的保护级别,对象无法访问》经验,为你挑选了1个好方法。

我的控制器的Index()方法引用一个类型(ExternalSourceProvider),它在控制器的开头指定为成员:

ExternalSourceProvider externalSource;

// GET: Index
public ActionResult Index()
{
    externalSource = new ExternalSourceProvider();

我收到ExternalSourceProvider()的错误; 在最后一行,说它由于它的保护级别而无法访问.这是ExternalSourceProvider的定义:

public class ExternalSourceProvider
{
    ExternalSourceProvider() { }

    public string ExternalSiteAbsoluteURI { get; set; }

我错过了什么?



1> Christos..:

您必须将默认构造函数标记为public.

public class ExternalSourceProvider
{
    public ExternalSourceProvider() { }

    public string ExternalSiteAbsoluteURI { get; set; }
}

就像现在一样,它无法在这里访问

externalSource = new ExternalSourceProvider();


不,类的方法的默认访问修饰符是私有的.即使对于构造函数也是如此.因此,如果您不指定它,构造函数的访问修饰符将是私有的.顺便说一下有一篇关于私有构造函数的好文章https://msdn.microsoft.com/en-us/library/kcfb85a6.aspx
推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有