Обработка ObjectDisposedException правильно в [закрытой] иерархии классов IDisposable

Хорошо, теперь вы используете файл доступа с Power BI? Во ВСЕХ и в КАЖДОМ случае, когда вы используете файл данных доступа, вы используете полный + стандартный + допустимый путь к файлу доступа.

Итак, если вы хотите, чтобы пользователи могли открывать файл Access accdb, тогда файл accdb должен быть помещен в папку, открытую для использования любым пользователем в сети. Таким образом, если вы используете Power BI с Access сейчас, вы заметите, что в этой системе Power BI есть допустимый путь FULL + к файлу Access.

Итак, если вы хотите вытащить данные из Access в Excel, то пользователь Excel должен иметь возможность видеть файл accDB в некоторой папке и иметь права на эту папку.

Итак, если вы хотите извлечь данные из Access в Word, то пользователь Excel должен иметь возможность видеть файл accDB в некоторой папке и иметь права на эту папку.

Итак, если вы хотите перетащить данные из Access в «ваше приложение», которое СЕЙЧАС подключается к Access », тогда любому приложению и всем пользователям нужны права на папку, в которой находится файл Access accDB.

12
задан Reed Copsey 21 March 2009 в 00:15
поделиться

2 ответа

Я обычно реализую первую опцию. Действительно, это, кажется, то, что рекомендует руководство по проектированию. Причина не сразу очевидна, но я считаю это хорошим, тем не менее: у любого реализатора класса должен быть тот же вид защиты от случая, где объект расположен как общие потребители. Другими словами, лучше не предположить, что, кто бы ни реализует производный класс, знает точно, когда они могут назвать определенный метод, успешное выполнение которого может или не может зависеть от того, был ли объект уже расположен или не (хотя идеально это должно быть зарегистрировано с помощью XML-комментариев так или иначе).

Относительно Вашего второго вопроса я снова придерживался бы методических рекомендаций передачи GetType().FullName, тем более, что это используется в базовой платформе.NET. Даже если Вы думаете, что альтернативные методы являются большим количеством appropiate, я думаю, лучше придерживаться метода, используемого в платформе.NET ради непротиворечивости.

Завершить: как со всеми инструкциями, ясно ваше дело, как Вы хотите реализовать определенную конструктивную особенность, хотя, если у Вас нет особенно серьезного основания, очень желательно только придерживаться их. В обеих этих ситуациях это, вероятно, не причинило бы большой вред для использования некоторых альтернатив, которые Вы предложили в своем сообщении, пока они используются последовательно и предпочтительно документируются пользователю.

5
ответ дан 2 December 2019 в 23:08
поделиться

Объявите частный расположенный bool; в обоих классах. Каждый класс отслеживает свой собственный this.disposed и бросает по мере необходимости.

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

Используйте защищенный bool, Склонный {добираются; частный набор;} вместо поля. Это позволило бы подклассу проверить склонное состояние.

Почему бы не обнародовать его и вызов он IsDisposed вместо этого? Затем Вы сделали бы то же самое как Систему. Windows. Формы. Управление. Это - хорошее решение, когда можно изменить базовый класс.

Вы могли потенциально возвратить название класса, который определяет метод

Нет. Пример кода Вы сослались на используемый "GetType ().FullName". Это всегда - название большей части производного типа, не тип, который реализует конкретный метод.

2
ответ дан 2 December 2019 в 23:08
поделиться
Другие вопросы по тегам:

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