Чи можливо мати анонімний тип реалізації інтерфейсу?
У мене є фрагмент коду, над яким я хотів би працювати, але не знаю, як це зробити.
У мене було кілька відповідей, які або кажуть «ні», або створюють клас, який реалізує інтерфейсну конструкцію нових примірників цього. Це насправді не ідеально, але мені цікаво, чи існує механізм створення тонкого динамічного класу поверх інтерфейсу, який би спростив це.
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);
}
}
}
Я знайшов статтю Динамічне обгортання інтерфейсу, яка описує один підхід. Це найкращий спосіб зробити це?