Tôi có một thuộc tính tùy chỉnh:Tìm phương pháp mà có thuộc tính tùy chỉnh sử dụng phản ánh
public class MenuItemAttribute : Attribute
{
}
và một lớp học với một vài phương pháp:
public class HelloWorld
{
[MenuItemAttribute]
public void Shout()
{
}
[MenuItemAttribute]
public void Cry()
{
}
public void RunLikeHell()
{
}
}
Làm thế nào tôi có thể nhận được chỉ các phương pháp được trang trí bằng thuộc tính tùy chỉnh?
Cho đến nay, tôi có điều này:
string assemblyName = fileInfo.FullName;
byte[] assemblyBytes = File.ReadAllBytes(assemblyName);
Assembly assembly = Assembly.Load(assemblyBytes);
foreach (Type type in assembly.GetTypes())
{
System.Attribute[] attributes = System.Attribute.GetCustomAttributes(type);
foreach (Attribute attribute in attributes)
{
if (attribute is MenuItemAttribute)
{
//Get me the method info
//MethodInfo[] methods = attribute.GetType().GetMethods();
}
}
}
Những gì tôi cần bây giờ là để có được tên phương pháp, các kiểu trả về, cũng như các thông số nó chấp nhận.
am i làm nó ass-về-trước đây? gây ra ngay bây giờ tôi tìm tất cả các thuộc tính và sau đó tôi thử và nhận được các phương pháp liên quan –
kỳ lạ đủ với mã của tôi tôi nhận được 2 kết quả, nhưng với ví dụ của bạn tôi nhận được 0 ..... –
Tôi đã thử nó với các lớp học của bạn; nó làm việc cho tôi. Bạn đang tìm kiếm các hội đồng phải không? – SLaks