识别哪个应用程序正在调用DLL

时间:2018-11-10 19:40:33

标签: .net vb.net visual-studio dll

我有一个供多个应用程序使用的DLL(vb.net)。

我已经在多个.net应用程序中引用了DLL(使用Visual Studio 2015)。

我需要确定哪个应用程序正在调用功能。

例如:

Public Sub xpto ()

if (application A) then

end if

If (application B) then

end if


End Sub

如何在dll中执行此操作?

2 个答案:

答案 0 :(得分:1)

您可以使用Assembly.GetCallingAssembly()获取第一个调用您的函数的程序集。

答案 1 :(得分:0)

我会使用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