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

4
我有一个Powershell脚本。我成功地加载了一个C#程序集并使用其中一个类中包含的方法:[MyCSharpAssembly.MyClass] :: MyAssemblyMethod()。然而,同样的方法无法在F#中实现。
这是否有可能?
我有一个名为Data.dll的程序集,它有一个名为People.fs的模块,而People.fs定义了记录类型。
module People =  
    type Teacher = {
        FirstName:string,
        LastName:string,
        Age:int }

我希望在我的PowerShell脚本中加载Data.dll程序集,并创建一个名为Teacher类型的记录表达式,以便在该脚本中的其他计算中使用它。如果可以实现,你能告诉我如何做吗?
1个回答

5

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

New-Object Teacher("Jane", "Doe", 27)

您可能需要传递完全合格的名称,而不是使用Teacher

3
值得注意的是:在传递完整限定名称时,请使用 + 符号:Data+Teacher("Jane", "Doe", 27),而不是 . 符号:Data.Teacher... - Marta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接