在Powershell中加载F#程序集并创建记录表达式

Mar*_*rta 4 powershell f#

我有一个Powershell脚本.我成功加载了一个C#程序集,并使用了该程序集中一个类中包含的方法:[MyCSharpAssembly.MyClass]::MyAssemblyMethod().但是同样没有用F#.

它可能吗?

我有一个调用的程序集Data.dll,它有一个名为的模块,People.fsPeople.fs定义了记录类型:

module People =  
    type Teacher = {
        FirstName:string,
        LastName:string,
        Age:int }
Run Code Online (Sandbox Code Playgroud)

我想将Data.dll程序集加载到我的Powershell脚本,然后在脚本中创建一个类型为Teacher的记录表达式,以便在该脚本中的其他计算中使用它.

如果可以的话,我该怎么做?

Mar*_*ann 5

F#记录编译为只读类,因此您应该能够使用创建值New-Object,将值作为构造函数参数传递.

New-Object Teacher("Jane", "Doe", 27)
Run Code Online (Sandbox Code Playgroud)

您可能必须传递完全限定名称而不是Teacher.

  • 值得注意的是:当传递完全限定名时,使用`+`符号:`数据+教师("简","Doe",27)`而不是`.`:`Data.Teacher ......` (3认同)