gpt4 book ai didi

c# - 如何获取导入的MEF函数的汇编信息?

转载 作者:行者123 更新时间:2023-11-30 16:32:43 25 4
gpt4 key购买 nike

是否可以从导入的 MEF 函数中获取程序集信息?我需要知道包含该函数的插件控件的程序集版本和名称。尝试了以下操作,但它只返回 System.ComponentModel.Composition 版本。

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);
}

另一种选择是在元数据中使用硬编码值,但我认为这将无法维护。版本更改时很容易忘记更改这些值。

最佳答案

您需要从 func.Value 中检查类型, 而不是 Lazy<T,TMeta>包装它。尝试:

Func<int> lambdaFunc = func.Value;
Delegate del = lambdaFunc;
string version = del.Method.ReflectedType.Assembly.GetName().Version.ToString();

但是,要意识到这将评估 Lazy<T>在这一点上 - 但这是必需的,因为在您对其进行评估之前,您尝试获取类型的对象尚未构建。

关于c# - 如何获取导入的MEF函数的汇编信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3832278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com