Pregunta

Tengo una interfaz definded como esto:

public interface IDatabase{ void Get<TTypeToFetch> ();}

y cuando intento hacer: Mockery mockery = new Mockery(); IDatabase db = mockery.NewMock<IDatabase>(); Me sale el siguiente error:

  

System.TypeLoadException: System.TypeLoadException: Firma del cuerpo y la declaración en una implementación del método no coinciden

Lo que está mal? (Estoy usando Visual Studio 2008 con nmock2) Por favor, todo el mundo me podría dar una respuesta, tengo que terminar esto pronto. Gracias, Luisa

¿Fue útil?

Solución

Creo que esto puede ser un problema con NMock, posiblemente, incluso un error. El tipo IDatabase no es genérico, por lo que cuando se invoca Get<T>, diferentes Ts se podría utilizar en tiempo de ejecución. Pero cuando NMock está generando la maqueta, no parece entender que este es el caso, y Kablammo -. Cada firma método es diferente, dependiendo del tipo de parámetro suministrado

Trate de hacer esto en su lugar:

public interface IDatabase<T> {
  void Get<T>();
}

Además, si no el tipo de Get ser T, no void?

Otros consejos

Yo tenía la misma excepción con mi propia interfaz. Cuando cambio de interfaz de ser todo público funciona bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top