Как получить путь к исполняемому файлу из управляемой DLL
-
02-07-2019 - |
Вопрос
У меня есть управляемая DLL (написанная на C++/CLI), содержащая класс, используемый исполняемым файлом C#.В конструкторе класса мне нужно получить доступ к полному пути исполняемого файла, ссылающегося на DLL.Я знаю, что в реальном приложении для этого можно использовать объект Application, но как мне сделать это из управляемой DLL?
Решение
Assembly.GetCallingAssembly()
или
Assembly.GetExecutingAssembly()
или
Assembly.GetEntryAssembly()
В зависимости от ваших потребностей.
Затем используйте свойство Location или CodeBase (не помню какое).
Другие советы
@леппи:Спасибо - это был тот указатель, который мне был нужен.
Для дальнейшего использования: в C++/CLI работает следующий синтаксис:
String^ appPathString = Assembly::GetEntryAssembly()->Location;
GetExecutingAssembly()
предоставил имя DLL
GetCallingAssembly()
вернул что-то вроде System.Windows.Forms
GetEntryAssembly
вернул полный путь, аналогичный GetModulePath()
под Win32.