Est-il possible qu'un type anonyme implémente une interface?
J'ai un morceau de code que j'aimerais travailler, mais je ne sais pas comment faire.
J'ai eu quelques réponses qui disent soit non, soit créer une classe qui implémente l'interface en construire de nouvelles instances. Ce n'est pas vraiment idéal, mais je me demande s'il existe un mécanisme pour créer une classe dynamique mince au-dessus d'une interface qui rendrait cela simple.
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);
}
}
}
J'ai trouvé un article sur l' encapsulation d'interface dynamique qui décrit une approche. Est-ce la meilleure façon de procéder?