获取类源

问题描述 投票:0回答:1

几个月前,我编写了一个小

Use-ClassAccessors
脚本来更轻松地定义类访问器(getter 和 setter)。 除了一个小限制之外,这工作得很好:需要从相关类所在的脚本文件中调用
Use-ClassAccessors
脚本,以便它可以加载该类的相关 AST 信息。不幸的副作用是,当我使用 VSCode 时,访问器并不总是重新加载到模块中。解决方法是“终止终端”并加载一个新终端。

模块
    psd1
  1. 还使用
    Use-ClassAccessors
    调用包含类和
    ScriptsToProcess
    函数的脚本,但是当对类本身进行更改时,这显然不会重新加载。
    
    
  2. 我怀疑如果我能够从静态构造函数运行
Use-ClassAccessors

函数(如

此处
所述),我可能能够解决此问题。 重点是我不知道如何获得 it

self

类的 (AST) 源代码。 换句话说:

有没有一种方法可以从相关类中检索类自己的 ScriptBlock,就像我在函数中所做的那样:


function GetMyCode { Write-Host 'My Source Code:' $MyInvocation.MyCommand.ScriptBlock }


powershell class abstract-syntax-tree
1个回答
1
投票

$targetType = [TargetClass] $accessorMethods = $targetType.GetMethods() |? Name -Like "?et_${PropertyName}"

© www.soinside.com 2019 - 2024. All rights reserved.