对于调试,我需要在Web应用程序使用时从c#类中读取静态属性。由于各种原因,我无法在此环境中运行调试器。
在.aspx文件中使用反射,我能够提取我需要的值,但是我想用powershell完成这个。
这可能吗?
作为一个粗略的例子,我有以下课程
public static class MyClass{
public static string TheData{
get{return _dataValue};
}
}
我需要读取' TheData'的值,该值仅在应用程序运行时存在。
答案 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请求。