Je veux travailler autour du fait que mon servicelayer WCF ne peut pas gérer une méthode générique comme ceci:C# coulée au type obtenu à partir typename sous forme de chaîne
public void SaveOrUpdateDomainObject<T>(T domainObject)
{
domainRoot.SaveDomainObject<T>(domainObject);
}
donc je construit cette méthode de contournement à la place
public void SaveOrUpdateDomainObject(object domainObject, string typeName)
{
Type T = Type.GetType(typeName);
var o = (typeof(T))domainObject;
domainRoot.SaveDomainObject<typeof(T)>(o);
}
Le problème est que cela ne compile pas en quelque sorte.
Je pense que cela est le résultat de ne pas me comprendre pleinement la différence entre
Type T Je crois que c'est un objet de type "Type"
le résultat de typeof (T) je crois que cela se traduit par une version de type non-objet du type de T (je ne sais pas comment dire exactement)
'typeof' est une construction à la compilation. 'typeof (T)' dans votre cas est 'Type'. Vous mélangez des éléments de compilation et d'exécution. –