Получить атрибут внешней сборки (c#)

137
21 ноября 2019, 12:20

Есть два файла: библиотека и сама программа. В библиотеке находится информация в виде настраиваемого атрибута M (содержится в ещё одной библиотеке amlib):

using amlib;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly : M("css", version = 0.1)]

Необходимо получить значение свойства этого атрибута из основной программы (т.е. из другой сборки).

Вот класс самого настраиваемого атрибута:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace amlib
{
    [AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
    public class M : System.Attribute
    {
        private string name;
        public double version;
        public M(string name)
        {
            this.name = name;
            version = 1.0;
        }
    }
}
Answer 1

Вот решение, которое мне было нужно:

var asm = Assembly.LoadFile(путь до библиотеки, из которой извлекается атрибут);
var version = (double)asm.GetCustomAttributes(typeof(amlib.M), false).Cast<amlib.M>().First().version;
Console.WriteLine(version);
READ ALSO
C# Многомерный ассоциативный массив или перегрузка свойств

C# Многомерный ассоциативный массив или перегрузка свойств

Те кто изучал java script или php, а потом переходили на C# наверное меня поймутКак они бедные обходятся без многомерных ассоциативных массивов без...

144
C# - Фильтр в эксель с использованием цикла

C# - Фильтр в эксель с использованием цикла

Подскажите как можно сделать следующие:

125
Как вставить пробелы?

Как вставить пробелы?

У меня есть текст в RichTextBox, мне надо чтоб считывались все пробелы(если у меня 2 пробела, то они не считывались как один)Это мне надо для выравнивания...

113