É possível que um tipo anônimo implemente uma interface?
Eu tenho um pedaço de código que gostaria de trabalhar, mas não sei como fazer isso.
Eu tive algumas respostas que dizem não ou criam uma classe que implementa a interface para construir novas instâncias disso. Isso não é realmente ideal, mas estou me perguntando se existe um mecanismo para criar uma classe dinâmica fina em cima de uma interface que tornaria isso simples.
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);
}
}
}
Encontrei um artigo Encapsulamento de interface dinâmica que descreve uma abordagem. Essa é a melhor maneira de fazer isso?