Обнаружение атрибута DllImport и его данных в сборке - PullRequest
1 голос
/ 29 сентября 2011

Я пытаюсь найти (во время выполнения), что p / вызывает вместе с их информацией: 1) Dll name 2) EntryPoint.

Я пробовал что-то вроде этого: Assembly.GetExecutingAssembly().GetCustomAttributesData();, но по какой-то причине я не вижу там типа DllImportAttribute, хотя в этой сборке есть p / invoke.

Я почти уверен, что что-то здесь упустил. Есть идеи?

Спасибо!

1 Ответ

2 голосов
/ 29 сентября 2011
var pinvokes = from type in Assembly.GetExecutingAssembly().GetTypes()
               from method in type.GetMethods(BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)
               let dllImport = (DllImportAttribute)method.GetCustomAttributes(typeof(DllImportAttribute), false).FirstOrDefault()
               where dllImport != null
               select new
               {
                   DllName = dllImport.Value,
                   EntryPoint = dllImport.EntryPoint,
               };
...