¿Es posible tener un tipo anónimo implementar una interfaz. Tengo un código que me gustaría trabajar, pero no sé cómo hacerlo.¿Puede una clase anónima de C# implementar una interfaz?
He recibido un par de respuestas que dicen que no, o crean una clase que implementa la interfaz crea nuevas instancias de eso. Esto no es realmente ideal, pero me pregunto si existe un mecanismo para crear una clase dinámica delgada sobre una interfaz que lo haga 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);
}
}
}
He encontrado un artículo Dynamic interface wrapping que describe un enfoque. ¿Es esta la mejor manera de hacer esto?
poco fuera de tema, pero se puede hacer esto en Java? Estoy seguro de que lo he visto en alguna parte ... –
C4H5As: Estoy de acuerdo, ya he visto esto antes. Tal vez VB.Net puede hacerlo? O tal vez solo estoy pensando en Java. –
El enlace parece desactualizado, esta quizás sea una alternativa adecuada http://www.liensberger.it/web/blog/?p=298. –