Domanda

Sto cercando di creare una sottoclasse di WebPart che agirà come un padre a qualsiasi WebParts creiamo.Se creo una classe vuota nello stesso progetto, sono in grado di ereditare da come uno si aspetterebbe.Tuttavia, se provo a metterlo in un altro assembly -- quello che ho potuto riferimento e utilizzare le classi di -- ottengo il seguente errore:

Impossibile caricare uno o più tipi richiesti.Recuperare la proprietà LoaderExceptions per ulteriori informazioni.

Altre informazioni che possono essere pertinenti (io non sono di solito sviluppatore SharePoint):Compilare la dll di riferimento dal dev progetto, e copiarli nella directory /bin di SharePoint.Le assemblee sono tutti firmati.Io sto tentando di distribuzione utilizzando VS2008 del 'distribuire' caratteristica.

Purtroppo, questo non sembra essere un SharePoint errore specifico, e non so come risolvere il problema.Qualcuno ha esperienza di questo e avete qualche suggerimento?

È stato utile?

Soluzione

OK, ho trovato il problema.Il packaging utilizzato dall'attività di riflessione, per un motivo o un altro.Quando scopre che la classe eredita da una classe in un altro dominio, tenta di caricare tramite reflection.Tuttavia, la riflessione non vincolante della politica, in modo che il dominio non viene caricato.

Gli autori del programma per il packaging potrebbe risolvere aggiungendo il seguente codice:

AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += new ResolveEventHandler(CurrentDomain_ReflectionOnlyAssemblyResolve);
Assembly a = System.Reflection.Assembly.ReflectionOnlyLoadFrom(filename);

static Assembly CurrentDomain_ReflectionOnlyAssemblyResolve(object sender, ResolveEventArgs args)
{
    return System.Reflection.Assembly.ReflectionOnlyLoad(args.Name);
}

Tuttavia, se avete bisogno di una soluzione per il vostro progetto, aggiungere l'assembly nella GAC e sarà in grado di risolverli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top