c#装配在一个类中加载,在另一个类中抛出异常

发布于 2025-02-07 22:43:09 字数 1271 浏览 1 评论 0原文

我在这里有一个非常奇怪的情况:

internal class Loader {
    internal void Load() {
        UseAssembly();
    }
    
    private void UseAssembly() {
        var marshaller = new Marshaller();
        Assembly assembly = marshaller.LoadAssembly();
    }
}

[Serializable]
public class Marshaller {
    internal Assembly LoadAssembly() {
        return Assembly.ReflectionOnlyLoadFrom("C:\\Users\\OLNO\\Downloads\\SkinProject1.dll");
    }
}

现在这是有趣的部分:

”在此处输入图像描述”

这很有趣,因为该文件存在于该位置,并且因为例外本身是在此行中抛出的:

Assembly assembly = marshaller.LoadAssembly();

但是不是这个位置:

Assembly assembly = Assembly.ReflectionOnlyLoadFrom("C:\\Users\\OLNO\\Downloads\\SkinProject1.dll"

当我有这个代替代替代码时,它可以正常工作:

internal class Loader {
    internal void Load() {
        UseAssembly();
    }
    
    private void UseAssembly() {
        Assembly assembly = Assembly.ReflectionOnlyLoadFrom("C:\\Users\\OLNO\\Downloads\\SkinProject1.dll");
    }
}

我正在Visual Studio 2019中工作,并且我尝试清洁构建和重建解决方案。这个问题对我来说看起来很像魔术...我该如何解决?

提前致谢。

I have a very weird situation here:

internal class Loader {
    internal void Load() {
        UseAssembly();
    }
    
    private void UseAssembly() {
        var marshaller = new Marshaller();
        Assembly assembly = marshaller.LoadAssembly();
    }
}

[Serializable]
public class Marshaller {
    internal Assembly LoadAssembly() {
        return Assembly.ReflectionOnlyLoadFrom("C:\\Users\\OLNO\\Downloads\\SkinProject1.dll");
    }
}

Now here is the interesting part:

enter image description here

It is interesting, because the file exists in that location, and because the exception itself is thrown at this line:

Assembly assembly = marshaller.LoadAssembly();

but not this one:

Assembly assembly = Assembly.ReflectionOnlyLoadFrom("C:\\Users\\OLNO\\Downloads\\SkinProject1.dll"

and when instead of code above I have this one, it works just fine:

internal class Loader {
    internal void Load() {
        UseAssembly();
    }
    
    private void UseAssembly() {
        Assembly assembly = Assembly.ReflectionOnlyLoadFrom("C:\\Users\\OLNO\\Downloads\\SkinProject1.dll");
    }
}

I'm working in Visual Studio 2019, and I've tried cleaning the build and rebuilding the solution. This issue looks pretty much like magic to me... How do I fix this?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文