0

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

4

1 回答 1

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;
}
于 2012-08-10T22:33:12.240 回答