[c#] Namespace non riconosciuto (anche se è lì)



4 Answers

Domanda stupida: potrebbero esserci due automapper.dll? Uno con uno spazio dei nomi AutoMapper e uno senza? Conferma i percorsi in entrambi i progetti.

Stato lì...

Inoltre ho notato che l'ordine di utilizzo è diverso. Non dovrebbe importare, ma hai provato a mescolarli?

Question

Sto ottenendo questo errore:

Non è stato possibile trovare il nome dello spazio dei nomi 'AutoMapper' (manca una direttiva using o un riferimento all'assembly?)

La cosa divertente è che ho già questo riferimento nel mio progetto:

E questo è il mio codice:

using System.Collections.Generic;
using DataContract;
using SelectorDAL;
using AutoMapper;

namespace SpecimenSelect
{
    public class SpecimenSelect : ISpecimenSelect
    {
        public SpecimenSelect()
        {
            SetupMaps();
        }

        private static void SetupMaps()
        {
            Mapper.CreateMap<SpecimenDetail, SpecimenDetailContract>();
        }

L'altra cosa strana è che ho due altri progetti nella mia soluzione che utilizzano entrambi AutoMapper e fanno riferimento esattamente allo stesso file AutoMapper.dll. Entrambi funzionano perfettamente bene.

Ecco una schermata di uno:

ed ecco quel codice (che compila bene):

using System.Collections.Generic;
using AutoMapper;
using DataContract;
using SelectorDAL;

namespace PatientSelect
{

    public class PatientSelect : IPatientSelect
    {
        public PatientSelect()
        {
            SetupMaps();
        }

        private void SetupMaps()
        {
            Mapper.CreateMap<Patient, PatientContract>();
            Mapper.CreateMap<OrderedTest, OrderedTestsContract>();
            Mapper.CreateMap<Gender, GenderContract>();
        }

Entrambi i riferimenti sembrano avere gli stessi dati nella pagina delle proprietà.

Cosa mi manca?

Provai:

  1. Riavvio di Visual Studio
  2. Riferimento senza un'istruzione using (cioè AutoMapper.Mapper.CreateMap )
  3. Pulisci e ricostruisci

Altre idee?




Nel mio caso avevo copiato una classibra e non ho cambiato il "Nome Assemblaggio" nelle proprietà del progetto, quindi una DLL stava sovrascrivendo l'altra ...




Ho risolto questo problema facendo clic con il pulsante destro del mouse sulla cartella contenente i file e scegliendo Escludi dal progetto, quindi facendo nuovamente clic con il pulsante destro del mouse e selezionando Includi nel progetto




Ho un problema simile con i riferimenti non riconosciuti in VS2010 e le risposte non sono state in grado di correggerlo.

Il problema nella mia soluzione era legato all'estensione del percorso in cui si trovava il progetto di riferimento. Mentre lavoro con SVN, ho creato un ramo di un repository per fare alcuni test e quel ramo ha aumentato due livelli nella struttura del percorso, quindi il percorso è diventato troppo lungo per essere utilizzabile in Windows. Questo non ha generato alcun errore ma non ha riconosciuto lo spazio dei nomi del riferimento del progetto. Quando correggo la posizione del progetto per avere un percorso più piccolo, tutto è andato bene.




Forse la tabella dei tipi del progetto è in uno stato errato. Vorrei provare a rimuovere / aggiungere il riferimento e se ciò non ha funzionato, creare un altro progetto, importare il mio codice e vedere se funziona.

Mi sono imbattuto in questo mentre si utilizzava VS 2005, uno si aspetterebbe che MS abbia risolto quel problema particolare ormai ..




Related



Tags

c# c#   reference