Sé que esta es una vieja pregunta y mis respuestas, pero me encontré con esto en esto buscando hacer exactamente lo mismo para algunas pruebas unitarias. Entonces me di cuenta de que ya estoy haciendo algo como esto usando Moq (facepalm).
Me gusta la otra sugerencia para ImpromptuInterface, pero ya estoy usando Moq y siento que tiene un mayor número de seguidores (es decir, no es un hecho) será más estable y compatible durante más tiempo.
por lo que para este caso sería algo así como
public interface ICoOrd
{
int X { get; set; }
int Y { get; set; }
}
public class Sample
{
public void Test()
{
var aCord = new Mock<ICoOrd>();
aCord.SetupGet(c => c.X).Returns(44);
aCord.SetupGet(c => c.Y).Returns(55);
var a = aCord.Object;
}
}
EDITAR: simplemente añadiendo otra manera de burlar el cordón, comenzó a hacerlo de esta manera y al igual que un poco mejor.
public void AnotherTest()
{
var aCord = Mock.Of<ICoOrd>(c => c.X == 44 && c.Y == 55);
//do stuff with aCord
}
Solo tengo curiosidad: ¿qué intentas hacer que requiera que hagas esto? Si conoces la interfaz, obviamente sabes qué funcionalidad tiene la interfaz, por lo que puedes implementar una clase para proporcionar esa funcionalidad, en cuyo caso ya no necesitas un tipo anónimo, ya que puedes crear una instancia de tu clase. – xxbbcc
¿Por qué querría anonimizar (no le "importa" su diseño) a una interfaz (lo que significa que "se preocupa" por su diseño)? – gdoron
@gdoron: es útil tener una interfaz, y he descubierto que el buen uso de los tipos anon (sin LINQ en este caso) ha simplificado mi código * y * me ayudó a aclarar la intención. Esa es la motivación. Sobre todo para hacer con estructuras intermedias. – sgtz