Member 12658724 Ответов: 1

Создать метод расширения на данной DLL-библиотеки


Допустим, я получаю dll от третьей стороны. У него есть только один метод
DisplayMethod(string result)


Теперь я хочу добавить новый метод PrintMethod(string result)к нему, но я не могу получить исходный код библиотеки dll.
Поэтому я предполагаю, что мне нужно сгенерировать метод расширения для него. Но как?

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

Я знаю, как создать метод расширения с нуля. Но не уверен, как это сделать с помощью данной библиотеки dll. Нужен пример кода. Спасибо

1 Ответов

Рейтинг:
10

Dave Kreskowiak

Методы расширения применимы к типам, а не к ним .файл DLL. Расширения добавляют функциональные возможности, применимые к типу, например целочисленному или строковому.

Нет никакого смысла добавлять "расширение" в файл.DLL. Ваш код не может попасть в систему.Сам DLL-файл, так что вы просто создаете новый DLL-файл, который будет находиться рядом с существующим в файловой системе. Вы просто создаете новый проект библиотеки классов,который будет компилироваться в другую библиотеку DLL.

Итак, что будет делать этот новый метод? Вы пытаетесь заменить функциональность DisplayMethod? Является ли исходный метод переопределяемым?


Member 12658724

Да. Несколько недель назад меня допрашивали на месте. Один парень задал мне этот вопрос, и я был/нахожусь в замешательстве. Тогда я спросил его в ответ: Зачем вы создаете новую библиотеку dll, чтобы сделать это?

Dave Kreskowiak

Вы не можете добавить свой код в исходную библиотеку DLL, потому что 1) это большая ручная работа, просто чтобы засунуть его туда, и 2) сильные именованные сборки не могут быть изменены без нарушения безопасности вокруг них.

Это все, что я могу сказать, потому что я не делаю за тебя домашнее задание по собеседованию.