Прежде чем написать это, я просмотрел более 10 вопросов по этой теме c, чтобы убедиться, что я не пропускаю что-то очевидное, но я не смог найти ответы на этот конкретный c сценарий.
Я работаю над корпоративным продуктом, который (к сожалению) унаследовал некоторый старый код VB6, который до сих пор используется в нескольких частях системы. В настоящее время я занимаюсь анализом того, как наилучшим образом определить, какая часть этого кода VB6 фактически используется, чтобы компания могла ориентироваться на стратегический c переход на. NET. У меня возникла следующая идея:
В местах, где используется код VB6, типичный код, который его вызывает (VB. NET), выглядит следующим образом:
Dim myComObject = Server.CreateObject("MyCOMObject")
With myComObject
.MyCOMProperty = ""
.MyCOMMethod()
End with
Моя идея состоит в том, чтобы создать фасад. NET, за которым можно скрыть весь код, который вызывает COM, и вызывать абстракцию фасада во всех местах, где в данный момент вызывается код COM. Другими словами:
public interface ICOMFacade
{
public object CreateCOMObject(string comObject)
}
...
Dim myComObject = comFacade.CreateCOMObject("MyCOMObject")
With myComObject
.MyCOMProperty = ""
.MyCOMMethod()
End with
Реализация CreateCOMObject будет внутренне вызывать Server.CreateObject (comObject), но также будет регистрировать этот вызов в базе данных. Таким образом, я мог бы проанализировать все вызовы ко всем COM-объектам и понять, что используется, а что нет. Однако этого недостаточно. Мне также нужно понять, какие методы и свойства вызываются из объектов COM. По этой причине мне нужно понять, существует ли способ, которым можно перехватить каждый вызов метода и свойство COM-объекта.
Спасибо.