在F#中使用程序集属性

Tri*_*tan 11 c# f# ironpython

我正在尝试将以下构造IronPython模块的C#示例转换为F#.

using System;
using IronPython.Runtime;

[assembly: PythonModule("my_module", typeof(MyModule))]

public static class MyModule {
    public static void hello_world() {
        Console.WriteLine("hello world");
    }
}
Run Code Online (Sandbox Code Playgroud)

from my_module import *除其他外,使用PythonModule允许.

我无法弄清楚如何在F#中应用PythonModule属性.F#文档仅讨论与模块相关的程序集属性,并附加到do().我不清楚如何定义被解释为python模块的静态类,但我不是C#/ F#/ IronPython专家.

Bri*_*ian 9

我手边没有所有的东西看看是否有效,但我会尝试

open System
open IronPython.Runtime

type MyModule = 
    static member hello_world() =
        Console.WriteLine("hello world")

module DummyModuleOnWhichToAttachAssemblyAttribute =
    [<assembly: PythonModule("my_module", typeof<MyModule>)>] 
    do ()
Run Code Online (Sandbox Code Playgroud)

对于初学者.


pbl*_*cci 5

没有测试过,但...

module MyModule 

open System
open IronPython.Runtime

let hello_world () =
    Console.WriteLine "Hello, World."

[<assembly: PythonModule("my_module", typeof<MyModule>)>] 
do ()
Run Code Online (Sandbox Code Playgroud)

与 Brian 的相同,但没有虚拟模块。