Цепочка IDisposable

У меня были подобные проблемы о Raspberry Pi, после того, как я установил libssl-dev пакет

sudo apt-get install libssl-dev

, но сумел найти ssl lib для команды настройки с этим:

# dpkg -L libssl-dev

.
.
.
/usr/lib/arm-linux-gnueabihf
/usr/lib/arm-linux-gnueabihf/libssl.a
/usr/lib/arm-linux-gnueabihf/pkgconfig
/usr/lib/arm-linux-gnueabihf/pkgconfig/libcrypto.pc
/usr/lib/arm-linux-gnueabihf/pkgconfig/libssl.pc
/usr/lib/arm-linux-gnueabihf/pkgconfig/openssl.pc
/usr/lib/arm-linux-gnueabihf/libcrypto.a
/usr/lib/arm-linux-gnueabihf/libssl.so
/usr/lib/arm-linux-gnueabihf/libcrypto.so

# ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/arm-linux-gnueabihf
5
задан C. Ross 31 August 2009 в 16:48
поделиться

4 ответа

Да. Вам нужно избавиться от них, чтобы ваши переменные-члены были правильно расположены.

Каждый раз, когда вы инкапсулируете класс IDisposable, вы должны сделать свой класс IDisposable. В своем методе Dispose вы должны избавиться от инкапсулированных ресурсов. По сути, обращайтесь с ними так же, как с родными ресурсами.

12
ответ дан 18 December 2019 в 11:59
поделиться

Если вы хотите детерминированное удаление, в конечном итоге некоторый клиент должен вызвать Dispose или заключить вызовы в блок «using». Чтобы добраться до вашего объекта, может потребоваться, чтобы владелец также реализовал IDisposable.

Не следует полагаться на сборщик мусора для освобождения любых ресурсов, зависящих от времени.

1
ответ дан 18 December 2019 в 11:59
поделиться

У вас есть директива препроцессора #line .

#line позволяет вам изменять номер строки компилятора и (необязательно) вывод имени файла для ошибок и предупреждений.

Директива #line может использоваться на автоматизированном промежуточном этапе в процессе сборки. Например, если строки были удалены из исходного файла исходного кода, но вы по-прежнему хотели, чтобы компилятор генерировал вывод на основе исходной нумерации строк в файле, вы можете удалить строки, а затем имитировать исходную нумерацию строк с помощью #line .

Директива #line hidden скрывает следующие друг за другом строки от отладчика, так что, когда разработчик проходит через код, любые строки между #line hidden и следующей директивой #line (при условии, что это не другая скрытая директива #line) будут перешагнуть. Этот параметр также можно использовать, чтобы позволить ASP.NET различать определяемый пользователем и созданный машиной код. Хотя ASP.NET является основным потребителем этой функции, вполне вероятно, что ее будут использовать другие генераторы исходного кода.

Директива #line hidden не влияет на имена файлов или номера строк в сообщениях об ошибках. . То есть, если ошибка обнаружена в скрытом блоке, компилятор сообщит текущее имя файла и номер строки ошибки.

Директива #line filename указывает имя файла, которое вы хотите отобразить в выводе компилятора. По умолчанию используется фактическое имя файла исходного кода.

1
ответ дан 18 December 2019 в 11:59
поделиться

Да, класс-владелец должен реализовывать IDisposable, но он не нуждается (не должен иметь) Finalizer (деструктор).

1
ответ дан 18 December 2019 в 11:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: