我有一个 DLL,它的 ComVisible 属性可能设置为 true,也可能不设置。我不确定它是如何构建的,或者具有什么属性?我所知道的是它是一个.Net DLL。简而言之,我如何判断它是否是 Com Visible?
抱歉,如果这是重复的。我对这个返回结果的所有搜索都显示了如何使DLL ComVisible。我知道该怎么做。
我有一个 DLL,它的 ComVisible 属性可能设置为 true,也可能不设置。我不确定它是如何构建的,或者具有什么属性?我所知道的是它是一个.Net DLL。简而言之,我如何判断它是否是 Com Visible?
抱歉,如果这是重复的。我对这个返回结果的所有搜索都显示了如何使DLL ComVisible。我知道该怎么做。
您可以使用反射检查程序集的ComVisibleAttribute:
private static bool IsComVisible(string assemblyPath)
{
var assembly = Assembly.LoadFile(assemblyPath);
var attributes = assembly.GetCustomAttributes(typeof(ComVisibleAttribute), false);
if (attributes.Length > 0)
{
return ((ComVisibleAttribute)attributes[0]).Value;
}
return false;
}
像这样的东西?
Assembly asm = Assembly.GetExecutingAssembly(); //Assembly.LoadFile, Assembly.Load
bool comVisible = asm.GetCustomAttributes()
.OfType<ComVisibleAttribute>()
.First()
.Value;