2013-09-12 1 views
0

Возможно ли получить пользовательские атрибуты из имени класса в виде строки?C# GetCustomattributes от имени класса

что-то вроде этого (который не работает)

Type myType = Type.GetType("MyClass"); 
MemberInfo info = myType // typeof(myType); 
object[] atts = info.GetCustomAttributes(true); 

ответ

0

Вы почти там. Вы пропустили пространство имен.

Type myType = Type.GetType("System.String"); 
object[] atts = myType.GetCustomAttributes(true); 

В вашем случае

Type myType = Type.GetType("YourNameSpace.MyClass");//this should work 

См Type.GetType для получения дополнительной информации

var asnames = Assembly.GetExecutingAssembly().GetReferencedAssemblies(); 
var asmname = asnames.FirstOrDefault(x => x.Name == assemName); 
Assembly.Load(asmname); 

Используйте выше код для предварительной загрузки сборки (если он существует в ссылочной сборке)

+0

Тип myType = Type.GetType ("YourNameSpace.MyClass"); возвращает null для меня. Есть ли способ получить это для ссылочных сборок - возможно, они не были использованы, поэтому не могут быть загружены (если .NET делает ленивую загрузку?) – user2707101

+0

@ user2707101 Боюсь, это возможно, но зачем вам загружать сборка? –

+0

Это работает: String strFile = assemName + ".dll"; Byte [] bytes = System.IO.File.ReadAllBytes (dllPath + strFile); Assembly assem = Assembly.Load (байты); Тип typeDefinition = assem.GetType (assemName + ".Entity." + EntityName); Но должен быть более простой способ получить Тип? – user2707101

0

Похоже, вы почти там.

Использование object[] atts = Type.GetType("MyNamesapce.MyClass").GetCustomAttributes(true);

работал безупречно для меня

Возможно, вы пропустили упоминания имен ?.

Проверить http://msdn.microsoft.com/en-us/library/system.attribute.getcustomattributes.aspx

+0

Спасибо это работает с «System.String», но не с «Mynamespace.myclass», который находится в отдельной dll, но ссылается и должен иметь доступную инструкцию. Возможно, мне нужно что-то сделать с GetAssembly. – user2707101

 Смежные вопросы

  • Нет связанных вопросов^_^