У меня есть объект, реализующий интерфейс, затем я нахожу этот объект с помощью отражения. Как я могу передать объект в интерфейс, а затем поместить его в List
?
Вам не нужно приводить объект, если он относится к типу, реализующему интерфейс.
IMyBehaviour subject = myObject;
Если тип мойОбъект
просто Объект
, то вам необходимо выполнить приведение. Я бы сделал это следующим образом:
IMyBehaviour subject = myObject as IMyBehaviour;
Если myObject
не реализует данный интерфейс, вы получите subject
как null
. Вероятно, вам нужно будет проверить его, прежде чем помещать в список.
public interface IFoo { }
public class Foo : IFoo {}
private SomeMethod(object obj)
{
var list = new List<IFoo>();
var foo = obj as IFoo;
if (foo != null)
{
list.Add(foo);
}
}
Вот функция, которая
приводит[s] объект к интерфейсу, а затем помещает его в список
public void CastAndAdd(object objThatImplementsMyInterface, IList<IMyInterface> theList)
{
theList.Add((IMyInterface)objThatImplementsMyInterface);
}
Я имею в виду, если вы уже нашли объект и имеете список, это довольно элементарно. Просто замените IMyInterface
любым интерфейсом, который вы используете.
Или обобщите это в соответствии с вашим конкретным кодом.