問題タブ [missingmethodexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - PowerShell から F# コードを呼び出すと MissingMethodException が発生するのはなぜですか?
PowerShell を使用して、Akka.Net アクターを使用する F# コードを呼び出そうとしています。
F# コードは、単体テストおよび F# インタープリターから実行すると正常に動作しますが、PowerShell コマンドレットから同じコードを呼び出すと、次の例外が発生します。
その PowerShell セッションで実行[Nessos.FsPickler.BinarySerializer]::new.OverloadDefinitions
して、PS が使用可能なメソッドを確認したところ、次のようになりました。
私が最初に気付いたのは、PowerShell によって表示されるバージョンが FSharpOption[Boolean] の代わりに FSharpOption[bool] を取ることでした。Option を明示的に渡すように Akka.FSharp コードを変更しようとしましたが、それは役に立たなかったようです。
私は FSharp.Core 4.0.0.1 を使用しています (他のリンクでは 3.0 に問題があることが示唆されています)。
誰かが似たようなものを見たことがありますか?
問題を探す場所についての提案も役に立ちますが、問題が PowerShell、F#、または Akka.Net にあるのかどうかはわかりません。
c# - C# raise F# ライブラリからのタイプ 'System.MissingMethodException' の例外
GeckoFx を使用して c# プロジェクトを作成し、作成した dll で af# 関数を呼び出しています。
関数を呼び出す c# コードは次のとおりです。
例外は最後の行で発生し、次のとおりです。
タイプ 'System.MissingMethodException' の例外が CSGeckoTest01.exe で発生しましたが、ユーザー コードで処理されませんでした
追加情報: Impossibile trovare il method 'System.Collections.Generic.IEnumerable`1 FSharp.Data.HtmlNodeModule.descendants(Boolean, Microsoft.FSharp.Core.FSharpFunc`2, FSharp.Data.HtmlNode)'.
関数がライブラリにあると確信しています (少なくとも VS Object Browser はそれを見ることができます)。FSI でテストしたところ、動作しました。
同様の問題が次の場所で見つかりました。
解決策に従いましたが、うまくいきません。
誰か助けてください。
ご清聴ありがとうございました。
dll - カスタム ライブラリを呼び出すときに System.MissingMethodException が発生するのはなぜですか?
という名前のライブラリ プロジェクトがMyLib
あり、そこには という名前空間がExtensions
あり、そこには という名前のモジュールがあり、タイプという名前Extension1
のメソッドがあります。ext1Method1
string -> string
ライブラリ プロジェクトのソリューションには、 という実行可能なコンソール プロジェクトがありますTest
。内でTest
呼び出すことができMyLib.Extensions.Extension1.ext1Method1 str
、正常に動作します。
と呼ばれる完全に別のソリューションを作成し、NewSol1
への参照を含めましMyLib.dll
たNewSol1
。中NewSol1
には線があります
ソリューションNewSol1
はエラーなしでビルドされます。しかし、実行可能ファイルを実行すると、次のエラーが発生します。
よろしくお願いします。
c# - メソッド例外がありません - 必要なメソッドを見つけてください
ユーザー クラスのリストにバインドされたデータ グリッド ビューがあります。
新しい行を作成すると、「User.cs のコンストラクターが見つかりません」という欠落メソッド例外が発生します。問題は、デフォルトのコンストラクターが既にあるため、クラスコンストラクターを実装できるようにパラメーターが何であるかを確認する方法があるかどうか疑問に思っていたことです。
クラスとコンストラクタはこちら
エラー:
c# - 別の dll のインターフェイスで ImmutableArray<> を使用してメソッドを呼び出すと、System.MissingMethodException がスローされる
問題
2 つのそれぞれの dll に以下のコードがあります。dll1 は dll2 に依存します。
がDoWork()
呼び出されると、正常に実行されmyInterface.MyListMethod(ImmutableList<byte>.Empty);
ます。実行しようとするmyInterface.MyArrayMethod(ImmutableArray<byte>.Empty);
と、次の例外がスローされます。
Exception:System.MissingMethodException: Method not found: Namespace.MyArrayMethod(System.Collections.Immutable.ImmutableArray'1<Byte>)
dll1.dll
dll2.dll
テスト
私の観点からは、ImmutableArray<>
上記のように、Immutable 名前空間の他の型を含む複数の型でこれを試したので、それは問題があるようです。ImmutableArray<>
私が試した範囲でのみ発生します。
また、両方の dll が現在の dll であり、古いキャッシュ バージョンが gac にぶら下がっていないことも確認しました。別のメソッドを持つようにインターフェイスを更新し、MyArrayMethod が期待どおりに機能する前にそれを呼び出します。
ImmutableArray<>
Visual Studios は特に、 paramを含むインターフェイスのメソッドへの参照の呼び出しを検出しませんが、 ImmutableList<>
. ImmutableArray<>
メソッドからパラメーターを削除すると、参照も取得されます。
ソリューションは正常にビルドされますが、このエラーがスローされるのは、実行時に JIT を試行した場合のみです。
f# - 関数パラメーターを取る関数をテストするときの MissingMethodException
FsUnit 2.1 (NUnit 3.2 を使用) を使用して、F# プロジェクトのテストを作成しています。以下は単純なモジュールです。
そして、ここに私のテストがあります:
2 番目のテストは (NCrunch および ReSharper で) 次のメッセージで失敗します。
System.MissingMethodException : Method not found: '!!0 Library1.LibraryFunctions.Execute(Microsoft.FSharp.Core.FSharpFunc`2<Microsoft.FSharp.Core.Unit,!!0>)'.
テスト対象のモジュールを (別の VS プロジェクトではなく) テストと同じコード ファイルに配置すると、テストは成功します。私の疑いでは、これは NUnit と F#/C# の相互運用性の問題によるものです。もしそうなら、どうすれば解決できますか?
powershell - メソッドが見つかりません: PowerShell コマンドレットから FSharp.Charting を使用する場合の GenericChart
PowerShell コマンドレット (これも F# で記述) から FSharp チャート ライブラリを使用しようとしていますが、GenericChart で MissingMethodException が発生します。
グラフ作成コードのサンプル:
testchart 関数は、PSCmdlet 派生クラスの ProcessRecord() メソッドから呼び出されます。プロジェクトは異なりますが、グラフ作成とコマンドレット コードは同じソリューションにあります。ソリューションはエラーなしでコンパイルされます。グラフ作成コードは対話型でエラーなしで実行されます。しかし、powershell コマンドレットを実行しようとすると、不足しているメソッドの例外が発生します。これは、VS2013 および VS2015 を使用している場合に発生します。
ドキュメントによると、GenericChart は FSharp.Charting.dll にあるはずです。dllがpowershellモジュールコードと同じディレクトリにあることを確認しました。
繰り返しますが、VS ではすべてのインテリセンスが動作し、すべてがコンパイルされ、インタラクティブに動作します。
どんな提案でも大歓迎です。