Могу ли я заменить предоставленный поставщиком метод, используемый страницей ASP.NET? - PullRequest
3 голосов
/ 25 июня 2010

Наше внутреннее HR-приложение разработано поставщиком, но мне было предложено изменить поведение определенной функциональности без их помощи (что я не хочу делать, но изучаю ...).Рассматриваемая функциональность - это страница .ashx, которая выполняет несколько операций поиска в базе данных и вызывается с помощью функций javascript на веб-странице.Мы хотим добавить еще один поиск в базе данных.

У нас есть контроль над кодом javascript, так что это не проблема, но код страницы .ashx содержится в скомпилированной сборке.Я нашел, где это, и изучил это, используя .Net Reflector.Реализовать используемые методы не составит труда, если бы это было технически выполнимо.

Могу ли я создать новую сборку, вставить в нее исходный код, взятый с помощью Reflector, внести свои изменения, добавить DLL в приложение изатем установить новый .ashx, чтобы сослаться на него?

Биты, о которых я беспокоюсь из-за невозможности:

Код относится к некоторым классам вендоров, которые содержатся в других сборках;Могу ли я просто добавить ссылки на эти сборки в Visual Studio, чтобы он мог скомпилироваться, а затем, когда он будет скомпилирован и помещен на сервер, все будет работать?

У меня будут проблемы с получением веб-приложения для принятияновая DLL, учитывая, что обычно это приложение не является чем-то, что мы вносим в себя?слишком далекоВместо этого я бы создал новую DLL-библиотеку, содержащую только одну нужную мне функцию (основываясь на материалах, взятых из существующей DLL с использованием Reflector).Мне нужно, чтобы этот код ссылался на код других поставщиков утилит, чтобы он мог получить доступ к классам, необходимым для доступа к платформе.Я бы сделал новую страницу .ashx, чтобы обслуживать код в новой DLL.

К счастью, после всего этого я не в курсе, потому что мой клиент согласен с тем, что нам не хватает отчаянияпопробовать все это!Но спасибо за помощь, которая, безусловно, полезна.

Ответы [ 2 ]

0 голосов
/ 25 июня 2010

Если вы просто хотите получить дополнительные данные, я бы просто реализовал свой собственный поиск и вызвал его из Javascript, а не связывался с рефлектором. Есть ли причина, по которой вы не можете этого сделать?

0 голосов
/ 25 июня 2010

См. Мой комментарий о риске подхода, который вы рассматриваете.

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

Замена кода для .ashx может быть возможна в зависимости от того, был ли он предварительно скомпилирован. Если это не так, то я считаю, что замена DLL в папке BIN должна помочь. (Предполагается, что другие сборки не ссылаются на него.) ( ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ : я никогда не пробовал и не рекомендую.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...