Apakah mungkin untuk membuat tipe anonim mengimplementasikan antarmuka?
Saya punya kode yang ingin saya kerjakan, tetapi tidak tahu bagaimana melakukan ini.
Saya punya beberapa jawaban yang mengatakan tidak, atau membuat kelas yang mengimplementasikan antarmuka membangun contoh baru dari itu. Ini tidak benar-benar ideal, tetapi saya bertanya-tanya apakah ada mekanisme untuk membuat kelas dinamis tipis di atas antarmuka yang akan membuat ini sederhana.
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);
}
}
}
Saya telah menemukan artikel Pembungkus antarmuka dinamis yang menjelaskan satu pendekatan. Apakah ini cara terbaik untuk melakukan ini?