Powershell反射负载运行dll

时间:2014-11-27 12:00:37

标签: c# powershell reflection

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

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

这可能吗?

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

public static class MyClass{

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

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

1 个答案:

答案 0 :(得分:1)

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

如果您看到Accessing static members across processes C#Get AppDomain for another .NET framework process,则会看到“进程间通信”或建议使用IPC。您必须在Web应用程序中创建一个入口点,您可以从该过程中读取此信息。

您还可以创建一个公开变量的ASPX页面,并从PowerShell using Invoke-WebRequest对该页面发出HTTP请求。