最近、現在のプロジェクトを 2 週間中断して、適切なサイズのファイル パーサーと数値エラー チェッカーを作成しました。私はキックと笑いのために F# でそれらを書くことにしました。素晴らしい決断。
VB で書かれた古いバージョンのプログラムは 1000 行を超えていました。F# で 170 でなんとかしました。素晴らしい。
現在のプロジェクトに戻り、F# lib を組み込んで解析を行い、XML 保存ファイルの書き込み/読み取りを行いたいと考えています。しかし、私の人生では、C# WPF アプリケーションから F# ライブラリを呼び出す方法を理解できないようです。
私は Microsoft Visual 2010 Professional を使用しています。この記事を参照して、これまでに試したことは次のとおりです。 / およびいくつかの SO 投稿:
- WPF プロジェクトを作成します。
- ソリューションに F# ライブラリ プロジェクトを追加しました。
- F# ライブラリへの参照を C# プロジェクトに追加: SolutionExplorer でプロジェクト ファイルを右クリックし、[参照の追加] をクリックし、[プロジェクト] タブから [MyFSharpLib] を選択して、[追加] をクリックします。
次に、デフォルトの F# ファイル module1.fs にいくつかのテスト コードを追加しました。
module Module1 let Add a b = a + b
そして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 タブの下に見つかりませんでした。
これは私を夢中にさせています。どんな助けでも大歓迎です。