4

最近、現在のプロジェクトを 2 週間中断して、適切なサイズのファイル パーサーと数値エラー チェッカーを作成しました。私はキックと笑いのために F# でそれらを書くことにしました。素晴らしい決断。

VB で書かれた古いバージョンのプログラムは 1000 行を超えていました。F# で 170 でなんとかしました。素晴らしい。

現在のプロジェクトに戻り、F# lib を組み込んで解析を行い、XML 保存ファイルの書き込み/読み取りを行いたいと考えています。しかし、私の人生では、C# WPF アプリケーションから F# ライブラリを呼び出す方法を理解できないようです。

私は Microsoft Visual 2010 Professional を使用しています。この記事を参照して、これまでに試したことは次のとおりです。 / およびいくつかの SO 投稿:

  1. WPF プロジェクトを作成します。
  2. ソリューションに F# ライブラリ プロジェクトを追加しました。
  3. F# ライブラリへの参照を C# プロジェクトに追加: SolutionExplorer でプロジェクト ファイルを右クリックし、[参照の追加] をクリックし、[プロジェクト] タブから [MyFSharpLib] を選択して、[追加] をクリックします。
  4. 次に、デフォルトの F# ファイル module1.fs にいくつかのテスト コードを追加しました。

    module Module1
    
    let Add a b = a + b
    
  5. そしてC#からそれを呼び出そうとしました:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace WpfApplication2
    {
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
    public MainWindow()
    {
        InitializeComponent();
    }
    
    // Call F# library
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        int a = Module1.Add(1, 2);
    }
    }
    }
    

これにより、「名前 'Module1' は現在のコンテキストに存在しません」というエラーが発生します。

問題はアセンブリにあると思います。私が見たいくつかのコードサンプルで気づいたusing Microsoft.FSharp.Core. これが私の悲しみの源ですか?追加しようとしましたが、.NET タブの下に見つかりませんでした。

これは私を夢中にさせています。どんな助けでも大歓迎です。

4

1 に答える 1