J'ai besoin d'une solution pour charger des listes d'objets - des recherches où une seule propriété est référencée à partir de l'objet actuel comme dans cet exemple.Méthode générique avec un type non spécifié possible?
class LookupObjectAddress
{
[...]
public string City
{ get; set; }
[...]
}
class WorkingObject
{
// references the property from LookupObjectAddress
public string City
{ get; set; }
}
Pour la recherche je besoin d'une liste à charger à partir de la base de données, à savoir d'où charger les informations que j'utilise un attribut
class WorkingObject
{
// references the property from LookupObjectAddress
[Lookup(Type=typeof(LookupObjectAddress), staticloaderclass="LookupObjLoader", staticloaderMethod="LookupObjLoadMethod")]
public string City
{ get; set; }
}
Après avoir lu le PropertyInfo pour le WorkingObject.City Propriété Je connais le type de l'objet de recherche, et de quelle classe avec quelle méthode le charger. Maintenant, j'ai besoin du pont pour obtenir une liste avec ces trois paramètres à travailler.
Type loaderClass = Type.GetType(classname);
MethodInfo loaderMethod = loaderClass.GetMethod(loadmethod);
object objList = loaderMethod.Invoke(null, new object[] {});
Depuis que je besoin de la liste dactylographiée <> pour l'utilisation des propriétés des LookupObjects sur l'interface utilisateur, comment puis-je devenir une liste utilisable dans le code?
Mon résultat idéal serait, si je pouvais taper:
var list = Loader.Load(type, "LookupObjLoader", "LookupObjLoadMethod");
où les paramètres sont lus à partir de l'attribut. (.-À-dire pas connu à la compilation)
Je ne comprends pas vraiment votre question. Voulez-vous dire que loaderMethod.Invoke() devrait retourner une liste à la place? –
GenericTypeTea
Pouvez-vous écrire du code qui est votre résultat idéal? – GenericTypeTea
C'est vrai, pour fonctionner correctement avec la liste, il faudrait que je connaisse le type de la liste. Mais je veux que le UserControl pour cela soit aussi générique que possible et pas avec des Cases pour chaque ObjectType que j'ai comme Lookup possible. –