Queste sono domande simili: How-to: Load a type from a referenced assembly at runtime using a string in Silverlight, GetType on a class in a referenced assembly fails ma nessuna risposta funziona.Ottieni il tipo nell'assembly referenziato fornendo il nome della classe come stringa?
Ho un progetto MVC che estrae i dati da un database che include i tipi semplici come stringhe. Questi tipi sono in un assembly referenziato, non nel progetto MVC.
Così, per esempio diciamo che il mio con riferimenti a nome dell'Assemblea è MyFramework
e il tipo di nome pianura Car
, il nome del tipo completo potrebbe essere MyFramework.Cars.Car
o MyFramework.Vehicles.Cars.Car
o qualche altra variazione. Tutto quello che ho sono il nome dell'assembly di riferimento e il nome della classe semplice come stringhe. Come posso ottenere il tipo indipendentemente dal nome completo del tipo?
Infine, è possibile scrivere una funzione nell'assieme di riferimento che chiama GetType() e utilizzarla nel progetto MvC in modo da poter rinunciare a includere il nome dell'assembly? Voglio rimuovere conoscere il nome di assemblaggio così ho pensato che avrei potuto scrivere un Util nell'Assemblea si fa riferimento come:
namespace MyFramework //the referenced assembly
{
public static class TypeUtil
{
public static Type GetFrameworkType(string typeName)
{
return Type.GetType(typeName);
}
}
}
E poi nel mio progetto MVC ho potuto chiamarla senza bisogno l'assembly come un nome di stringa. È possibile o avrò sempre bisogno del nome dell'assembly?
Perché le altre risposte non funzionano? –
@RobertHarvey È perché ho solo il nome di classe semplice. Non il nome completo del tipo. Queste risposte si basano sulla conoscenza del tipo completo. – SventoryMang