से सभी सार्वजनिक विधियों को पुनर्प्राप्त करने के लिए मेरे पास * .dll सी # के साथ लिखा गया है और मुझे उस * .dll में निहित सभी सार्वजनिक विधियों या कक्षाओं की सूची प्राप्त करने की आवश्यकता है। क्या सी # के साथ प्रोग्रामेटिक रूप से ऐसा करने का कोई तरीका है?* .dll
Q
* .dll
9
A
उत्तर
2
सिस्टम.Net.Reflection का उपयोग करें। प्रतिबिंब कक्षाएं आपको रन समय पर डीएलएल के प्रकारों के मेटाडेटा से पूछने देती हैं।
this.GetType().Assembly.GetTypes();
12
तरह हाँ Assembly.GetTypes का उपयोग प्रकार के सभी को निकालने के लिए, और उसके बाद सार्वजनिक तरीकों दोहराने में प्रत्येक प्रकार के प्रतिबिंब का उपयोग करें।
Assembly a = Assembly.LoadWithPartialName("...");
Type[] types = a.GetTypes();
foreach (Type type in types)
{
if (!type.IsPublic)
{
continue;
}
MemberInfo[] members = type.GetMembers(BindingFlags.Public
|BindingFlags.Instance
|BindingFlags.InvokeMethod);
foreach (MemberInfo member in members)
{
Console.WriteLine(type.Name+"."+member.Name);
}
}
4
var assembly = // grab assembly
var types = assembly.GetExportedTypes();
foreach (var type in types) {
var methods = type.GetMethods(BindingFlags.Public);
}
GetExportedTypes विधानसभा में सभी सार्वजनिक प्रकार वापस आ जाएगी। आपने यह भी निर्दिष्ट नहीं किया कि आप केवल उदाहरण विधियों, स्थिर विधियों या दोनों चाहते थे।
संबंधित मुद्दे
- 1. DLL
- 2. DLL
- 3. घटक dll
- 4. विंडोज DLL
- 5. user32.dll
- 6. exe \ dll
- 7. अप्रबंधित DLL
- 8. ctypes dll
- 9. एक DLL
- 10. माइक्रोसॉफ्ट.Web.Services2.dll
- 11. DocumentFormat.OpenXml dll
- 12. Json.NET dll
- 13. एक DLL
- 14. चेतावनी: dll
- 15. shell32.dll जैसे dll को बनाने के लिए कैसे Icon
- 16. msvcp90.dll गलत msvcr90.dll पर निर्भर करता है?
- 17. SQLite.Interop.DLL गैर प्रबंधित DLL
- 18. मैं एक C# dll
- 19. Py2Exe: DLL लोड
- 20. DllNotFoundException, लेकिन DLL
- 21. py2exe msvcp90.dll
- 22. गुम msvcr80.dll
- 23. एसक्यूएल सर्वर एसएमओ DLL
- 24. NUnit - एक DLL
- 25. System.ServiceModel.DomainServices.EntityFramework DLL कहां है?
- 26. COM msado15.dll प्रोग्राम
- 27. केवल .dll संदर्भ
- 28. मैं * .dll फ़ाइल
- 29. libgmp-10.dll
- 30. एक .NET DLL
एक शब्द: प्रतिबिंब। – BoltClock