Ошибка компиляции C #: «X недоступен из-за уровня защиты» - PullRequest
3 голосов
/ 29 августа 2010

когда c # выдает эту ошибку компиляции?

'Favorite.Foving.FavoriteCollection' недоступен из-за уровня защиты

private void Form1_Load(object sender, EventArgs e)
{
    Favorites objFavorites = new Favorites(); 

    objFavorites.ScanFavorites();
    foreach (WebFavorite objWebFavorite in objFavorites.FavoriteCollection)
    {
        ListViewItem objListViewItem = new ListViewItem();
        objListViewItem.Text = objWebFavorite.Name;
        objListViewItem.SubItems.Add(objWebFavorite.Url);
        lstFavorites.Items.Add(objListViewItem);
    }
}

Ответы [ 2 ]

7 голосов
/ 29 августа 2010

Эта ошибка времени компиляции означает, что свойство, к которому вы пытаетесь получить доступ, не является public, и единственный способ получить к нему доступ - либо изменить его модификатор доступа , либо использовать отражение .

3 голосов
/ 29 августа 2010

Когда он недостаточно видим, чтобы достичь: если, например, класс находится в другом проекте и видимость равна interal или ниже (protected или private), вы не сможете его использовать , Вам придется изменить его на public в таком случае:

public class FavoriteCollection
{
...
}
...