Comment passer un type inconnu qui sera défini dans une autre classe en tant que paramètre dans une telle expression. Je ne sais pas comment appeler l'expression. et je ne sais pas pourquoi il ne peut pas se souvenir du type entre les crochets et quelle est la solution.Passage d'un type inconnu entre parenthèses
.AddCallHandler<asp.CallHandlerType>
Le code:
foreach (IAspect asp in Policy.Aspects)
{
//Type callHandlerType = asp.CallHandlerType;
policy.AddMatchingRule(ruleLog)
.AddCallHandler<asp.CallHandlerType>(new
ContainerControlledLifetimeManager());
}
On dit le type ou espace de noms pour "asp
" n'existe pas. J'ai aussi essayé de le définir plus tôt et de le passer "callHandlerType
", encore un problème similaire.
foreach asp le type CallHandler serait différent, dans un il serait RestaurantCallHandler, dans l'autre il pourrait être MagicCallHandler. Celles-ci ont été définies dans les aspects.
définition de méthode de l'interface:
public interface IAspect
{
Type CallHandlerType { get; set; }
// e.g it can be "MagicCallHandler : ICallHandler
}
bien où appelez cette méthode vous? Pourriez-vous en faire une méthode générique? –
@Jon Skeet Salut Jon, oui je peux. C'est un framework AOP que j'écris pour Unity. Je poste la définition de la méthode d'interface. pas professionnel sur les génériques mais toujours en les utilisant. Si vous l'avez modifié en un formulaire générique, veuillez publier un exemple d'utilisation de ligne après l'appel. merci – LastBye
Ah, après avoir relu la question, je pense que je vois le problème. D'accord ... cela peut être fait avec la réflexion. –