运行 dll 的电源外壳反射加载

本文关键字:反射 加载 外壳 电源 dll 运行 | 更新日期: 2023-09-27 18:32:18

为了进行调试,我需要在 Web 应用程序使用 c# 类时从该类读取静态属性。由于各种原因,我无法在此环境中运行调试器。

在.aspx文件中使用反射,我能够提取我需要的值,但是我想使用 powershell 完成此操作。

这可能吗?

作为一个粗略的例子,我有以下类

public static class MyClass{
    public static string TheData{
        get{return _dataValue};
    }
}

我需要读取"TheData"的值,该值仅在应用程序运行时存在。

运行 dll 的电源外壳反射加载

不能通过直接从另一个进程检查类来执行此操作。静态类在 AppDomain 中存在一次,该 AppDomain 仅限于其自己的进程。运行PowerShell是一个不同的过程,因此它具有自己的AppDomain,具有自己的静态类版本。

如果看到"跨进程 C# 访问静态成员"和"获取另一个 .NET 框架进程的 AppDomain",则会看到"进程间通信"或建议使用 IPC。您必须在 Web 应用程序中创建一个入口点,您可以在其中从流程中读取此信息。

还可以简单地创建一个公开变量的 ASPX 页,并使用 Invoke-WebRequest 从 PowerShell 对该页执行 HTTP 请求。