He simplificado y reproducido mi problema en el siguiente código. El error que estoy recibiendo es: Argumento 1: no se puede convertir de 'System.Collections.ObjectModel.Collection' a 'System.Collections.ObjectModel.CollectionC# Pasando una colección como una colección de interfaces
Algunos antecedentes de las decisiones de diseño que llevaron a este problema: Tengo creó un servicio web para tratar con "IFruit", pero debido a la naturaleza de SOAP y enlaces de punto final como los entiendo, he creado métodos con implementaciones explícitas de IFruit. En la capa empresarial, crear un método separado para cada implementación específica de fruta generaría en primer lugar una gran cantidad de código duplicado y, en segundo lugar, acoplar la capa de negocio y servicio lo suficiente como para aceptar nuevos tipos de IFruit en el servicio web más tarde. en la capa de negocios (agregando otra copia de código redundante). Este diseño es uno que he implementado con éxito utilizando Java en el pasado, pero las interfaces C# parecen ser lo suficientemente diferentes como para arrojarme. Por favor avise.
public interface IFruit{
public string TakeBite();
}
public Apple : IFruit{
public string TakeBite(){
return "tasty bite of apple";
}
}
public void EatFruit(Collection<IFruit> fruits){
foreach(var fruit in fruits){
Console.WriteLine(fruit.TakeBite());
}
}
public void EatApples(Collection<Apple> apples){
this.EatFruit(apples);
}
Gracias. Esto compila.Ahora para actualizar mis pruebas de unidad. – YouGotCSharpInMyJava