Ошибка компиляции C#: "X недоступен из-за уровня защиты"

Когда C# дает эту ошибку компиляции?

'Favorite.Flected.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 ответа

Решение

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

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

public class FavoriteCollection
{
...
}
Другие вопросы по тегам