Ошибка компиляции 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
{
...
}