Czy możliwe jest, aby anonimowy typ zaimplementował interfejs?
Mam kawałek kodu, który chciałbym pracować, ale nie wiem, jak to zrobić.
Mam kilka odpowiedzi, które albo mówią „nie”, albo tworzę klasę, która implementuje interfejs, konstruuje nowe instancje tego. To nie jest naprawdę idealne, ale zastanawiam się, czy istnieje mechanizm do tworzenia cienkiej dynamicznej klasy na interfejsie, który by tak uprościł.
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);
}
}
}
Znalazłem artykuł Zawijanie interfejsu dynamicznego, który opisuje jedno podejście. Czy to najlepszy sposób na zrobienie tego?