Возможно ли, чтобы анонимный тип реализовывал интерфейс?
У меня есть кусок кода, который я хотел бы работать, но не знаю, как это сделать.
У меня была пара ответов, которые либо говорят «нет», либо создают класс, который реализует интерфейс, создавая новые экземпляры этого. Это не совсем идеально, но мне интересно, есть ли механизм для создания тонкого динамического класса поверх интерфейса, который сделал бы это простым.
public interface DummyInterface
{
string A { get; }
string B { get; }
}
public class DummySource
{
public string A { get; set; }
public string C { get; set; }
public string D { get; set; }
}
public class Test
{
public void WillThisWork()
{
var source = new DummySource[0];
var values = from value in source
select new
{
A = value.A,
B = value.C + "_" + value.D
};
DoSomethingWithDummyInterface(values);
}
public void DoSomethingWithDummyInterface(IEnumerable<DummyInterface> values)
{
foreach (var value in values)
{
Console.WriteLine("A = '{0}', B = '{1}'", value.A, value.B);
}
}
}
Я нашел статью Динамическая упаковка интерфейса, которая описывает один подход. Это лучший способ сделать это?