определить, какое приложение вызывает DLL - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть DLL (vb.net), которая используется несколькими приложениями.

Я ссылался на DLL в нескольких приложениях .net (с использованием Visual Studio 2015).

Мне нужночтобы определить, какое приложение вызывает функции.

Например:

Public Sub xpto ()

if (application A) then

end if

If (application B) then

end if


End Sub

Как я могу сделать это в DLL?

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Я бы использовал Assembly.GetEntryAssembly () вместо GetCallingAssembly(), как предложено.

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

Получает исполняемый файл процесса в домене приложения по умолчанию. В другие домены приложений, это первый исполняемый файл, который был выполняется ExecuteAssembly (String).

Применительно к вашему сценарию у вас будет что-то вроде этого:

Public Sub xpto ()

' Grabs the entry assembly.
Dim entryAssembly as Assembly = Assembly.GetEntryAssembly()

' Grabs its name
Dim entryAssemblyName as AssemblyName = entryAssembly.GetName()

    If (entryAssemblyName.Name == ApplicationA) Then

    End If

    If (entryAssemblyName.Name == ApplicationB) Then

    End If

End Sub
0 голосов
/ 10 ноября 2018

Вы можете использовать Assembly.GetCallingAssembly() для получения первой другой сборки, вызывающей вашу функцию.

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