如果在IE中运行的ActiveX控件调用其他库,那些库是否需要实现IObjectSafety?

时间:2012-07-26 20:13:37

标签: .net activex webbrowser-control

我在浏览器中运行.NET ActiveX控件(IE。)它调用其他库(也通过站点传递)来执行日志记录等功能,这需要写入磁盘。这些其他库是否也需要实现IObjectSafety?

1 个答案:

答案 0 :(得分:1)

简短的回答是否定的。看来只有公开暴露的程序集需要这个。

经过多次调试后发现我遇到的真正问题是由于ActiveX库在使用类ID实例化为ActiveX时没有正确解析.NET依赖路径。我通过将以下内容添加到我的ActiveX库的构造函数中解决了这个问题,现在它工作正常:

public YourActiveXLibrary()
{
    AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(LoadInstallDependency);
}

private static Assembly LoadInstallDependency(object sender, ResolveEventArgs args)
{
    string installPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
    string dependencyPath = Path.Combine(installPath, new AssemblyName(args.Name).Name + ".dll");
    return File.Exists(dependencyPath) ? Assembly.LoadFrom(dependencyPath) : null;
}
相关问题