picasso2 Ответов: 1

Доступ к списку из любого места в коде


Я нашел простой консольный код, который получает разрешения NTFS


static void DumpSecurity(string path)

{

FileSecurity sec = файл.GetAccessControl(путь);

if (sec = = null)
{
Приставка.WriteLine ("файл не найден.");

вернуть;
};

foreach (правило FileSystemAccessRule в сек.GetAccessRules(true, true, typeof(NTAccount)))
{

StringBuilder bldr = новый StringBuilder();

если (правило.Свойства Accesscontroltype == Свойства Accesscontroltype.Отказать)

блдр.Добавить("[отрицать] ");

если (правило.IsInherited)

блдр.Добавить("[наследству] ");

блдр.AppendFormat ("{0}", правило.IdentityReference);

блдр.Добавить (правило.FileSystemRights);

Приставка.WriteLine(bldr.Метод toString());

};


};

То, что я сейчас пытаюсь сделать, - это использовать код в приложении windowsForm

добавлен список и кнопка

- Функция запускается событием кнопки
DumpSecurity(путь);

таким образом, моя проблема заключается в том, что я не могу видеть список в функции DumpSecurity (). Другими словами, попытка заменить

Приставка.WriteLine(bldr.Метод toString());
около
список listbox1.Предметы.Добавить (bldr.Метод toString());

как я могу сделать список доступным (глобальным) внутри функции?
большое спасибо

Что я уже пробовал:

программно создайте список внутри функции, а не чистое решение

1 Ответов

Рейтинг:
2

OriginalGriff

Это связано с тем, что функция DumpSecurity является статической, а это означает, что она может обращаться только к статическим членам класса.
Listbox является частью вашей формы, поэтому это объект экземпляра, а не статический, и вы вообще не можете получить к нему доступ, не передав правильный экземпляр формы функции.

В качестве альтернативы удалите static ключевое слово из функции, предполагая, что она находится в том же классе формы, что и Listbox, и может получить доступ к элементам управления.