Tengo un método de tipo IEnumerable en una de mis clases:

protected virtual IEnumerable<T> GetSomething(CrudOptions crudOptions)
{
    ...
}

En algún lugar de la solución, he definido CrudOptions como:

namespace myProject.Enums 
{ 
    public enum CrudOptions { Delete, Update, Read, Create }
}

Cuando intento agregar el método en mi clase a una clase de interfaz ya existente, me dice que no puedo hacerlo porque no se pudo encontrar el tipo o el espacio de nombres CrudOptions. Esto es lo que estoy agregando a la clase de interfaz:

IEnumerable<SomeTypeClass> GetSomething(CrudOptions crudOptions);

¿Tengo este problema porque no estoy haciendo referencia al tipo CrudOptions correctamente, o en una interfaz no tengo permitido usar un tipo definido?

0
MasoodS 14 sep. 2018 a las 23:47

3 respuestas

La mejor respuesta

Según sus comentarios, parece que la enumeración CrudOptions no está definida en el mismo proyecto que tiene el método GetSomething y parece que el último proyecto no tiene el proyecto anterior como referencia. El proyecto que tiene GetSomething debe hacer referencia al proyecto que define CrudOptions.

Para agregar la referencia del proyecto, vaya al Explorador de soluciones, expanda el proyecto que tiene GetSomething, haga clic con el botón derecho en References y seleccione Add reference..., seleccione la pestaña Projects a la izquierda en el Haga clic en la ventana Administrador de referencia, marque la casilla junto al proyecto que define CrudOptions y haga clic en OK.

Después de hacer eso, en GetSomething vea si puede compilar usando el nombre de tipo completo myProject.Enums.CrudOptions.

1
Aaron T 14 sep. 2018 a las 22:32

Creo que, tal como otros te dijeron, podría haber múltiples problemas:

  • Tipo de enumeración duplicado: solución: utilice un nombre completo
  • Proyecto no referenciado con tipo de enumeración - Solución: agregue referencia al proyecto con tipo de enumeración
  • Proyecto no incorporado -Solución: proyecto de construcción
  • Lo último que puedo imaginar es que necesita limpiar los archivos binarios - Solución: eliminar bin, carpetas obj en proyectos y reconstruir

Esto es principalmente un resumen de todas las respuestas anteriores. Espera esta ayuda.

0
Peter 14 sep. 2018 a las 22:06

Sí, no estás utilizando el espacio de nombres correcto. cambiarlo como

IEnumerable<SomeTypeClass> GetSomething(myProject.Enums.CrudOptions crudOptions);

Nuevamente, si eso está definido en otro ensamblaje, debe hacer referencia a ese ensamblaje

0
Rahul 14 sep. 2018 a las 20:50