Я пытаюсь найти все классы с настраиваемым атрибутом «ToolTestAttribute» и создать экземпляр этого класса. Когда код пытается запустить конструктор, он сообщает, что тип конструктора не найден.
Мой класс, который я пытаюсь запустить, выглядит следующим образом:
public AllComponentsConstrained(ITool toolFile)
{
tool = toolFile;
}
Мой код, который находит классы с нужным мне атрибутом выглядят так:
List<object> StartTests(Assembly assem, ITool tool)
{
List<object> result = new List<object>();
foreach (Type type in assem.GetTypes())
{
if (type.GetCustomAttributes(typeof(ToolTestAttribute), true).Length > 0)
{
List<ITool> args = new List<ITool>();
args.Add(tool);
result.Add(Activator.CreateInstance(type, args));
}
}
return result;
}
Код ToolTestAttribute:
using System;
using System.Reflection;
namespace Sharpline.SL24.ToolingAddIn.Attributes
{
[AttributeUsage(AttributeTargets.Class)]
class ToolTestAttribute : Attribute
{
public string Target;
public string Name;
public ToolTestAttribute(string testTarget, string testName)
{
Target = testTarget;
Name = testName;
}
}
}
Мой список аргументов содержит один элемент правильного типа. Что здесь может быть не так?