Est-il possible d'obtenir les informations d'assemblage à partir d'une fonction MEF importée? J'ai besoin de connaître la version de l'assembly et le nom du contrôle Plugin qui contient la fonction. J'ai essayé ce qui suit, mais il retourne juste la version System.ComponentModel.Composition.Comment obtenir les informations d'assemblage d'une fonction MEF importée?
foreach (Lazy<Func<int>, IMetadata> func in PluginFuncs)
{
// get assembly information of the Plugin control for the imported function
string version = func.GetType().Assembly.GetName().Version.ToString();
Console.WriteLine(version);
}
Une autre alternative serait d'utiliser des valeurs codées en dur dans les métadonnées, mais je pensais que ce ne serait pas maintenable. Il serait facile d'oublier de changer ces valeurs lorsque la version a changé.
Merci pour la suggestion, mais maintenant il retourne la version pour mscorlib. D'autres idées? –
@John_Sheares: Oh, putain - cela a du sens - Func est System.Func ... mmm ... laissez-moi penser –
@John_Sheares: Je crois que ce qui précède va maintenant fonctionner. En affectant à un délégué, vous pouvez obtenir le type sur lequel la méthode est définie via MethodInfo retourné dans Delegate.Method. –