問題タブ [invalidoperationexception]
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.
c# - C# で foreach ループを使用する場合のコレクションの変更
基本的に、 foreach ループ内でリストからアイテムを削除したいと思います。forループを使用するとこれが可能であることはわかっていますが、他の目的のために、foreachループを使用してこれが達成可能かどうかを知りたいです。
Python では、次のようにしてこれを実現できます。
これにより、次の出力が得られます
しかし、c# で似たようなことをすると、InvalidOperationException が発生します。単純に for ループを使用せずに、これを回避する方法があるかどうか疑問に思っていました。
例外がスローされたときに使用した c# のコード:
前もって感謝します
linq - Expression.Lambda()を使用してデリゲートをコンパイルする-パラメーターが範囲外ですが、本当にそうですか?
今日、動的式構築ライブラリに機能を実装しているときに、興味深い問題に遭遇しました。より具体的には、無関係ですが、式で演算子の優先順位を定義する機能。
LINQエンジンが最終式をコンパイルしているときに、InvalidOperationException宣言に遭遇しましたLambda parameter out of scope。
ParameterExpression問題は、関連するオブジェクトを割り当てた後に明らかになります。
完全で整形式のラムダ式ツリーを使用してParameterExpression、Lambdaをコンパイルするときに、Lambdaのオブジェクトを有効な参照に再割り当てすることは無効であることがわかりました。
これは、修正を適用する前に最初に採用した動作の簡単な説明です。
- で使用することを目的とした式ツリーを構築します
Queryable.Where。ルート式は、を使用してLambdaExpression構築されます。Expression.Lambda(expression, Expression.Parameter(GetType(type), "name")) - (LinqKitを使用して)式ツリーにアクセスし、検出されたパラメーターのハッシュテーブルを作成します
- 同じ名前の後続のパラメーターは、同じ名前の最初に検出されたパラメーターに置き換えられます
ParameterExpression結果は、同じ名前のすべての参照がすべて同じオブジェクトを指している式ツリーでしたInvalidOperationExceptionが、コンパイル時に検出されました。
私が適用した修正では、次の動作が採用されました。
- パラメータをの配列として構築します
ParameterExpression - を使用してルートラムダを構築します
Expression.Lambda(expression, parameterArray) - (LinqKitを使用して)式ツリーにアクセスし、次のパラメーターで検出されたパラメーターを置き換えます。
parameterArray
Lambda式の構造は概念的には前の動作からの出力と同じですが、最終結果は正常にコンパイルされます。
問題は、最初はなぜ失敗し、2番目は成功するのかということです。
以下は、テストケースといくつかのサポートクラス(nUnit、LinqKitに依存)を含む、再現するテストフィクスチャクラス(vbを言い訳)です。
注:TestFixtureとTestの属性宣言がありません-マークダウンで行う方法???
c# - 既存の依存関係プロパティのコールバックにロジックを追加するにはどうすればよいですか?
PropertyChangedCallback を UIElement.RenderTransformOriginProperty に追加しようとしています。PropertyMetadata をオーバーライドしようとすると、例外がスローされます。
MSDN と Google を検索しましたが、思いついたのはこれだけです。DependencyPropertyDescriptor.AddValueChanged は、その投稿のある時点で提案されていますが、これはインスタンスごとのコールバックではないため、私の問題は解決しません。
この例外の意味がまったくわかりません。私が間違っていることを誰かが知っていますか?
linq-to-sql - クエリ結果を複数回列挙することはできませんか?
LINQ to SQL を使用して、Sql サーバー 2008 で FullTextSearch ストアド プロシージャの検索結果を取得しています。プロシージャをサーバー エクスプローラーからデザイナーにドラッグし、適切な戻り値の型とパラメーターを使用してメソッドを作成しました。問題は、このメソッドを呼び出した結果のカウントを取得する必要があるため、リポジトリ メソッド (Sproc メソッドを呼び出して結果を IQueryable として返す) を使用して、次の呼び出しを行うことです。
このコードは、実行しようとするたびに InvalidOperationException を生成します。例外には、「クエリ結果を複数回列挙することはできません」というメッセージが表示されます。
Sproc 用に生成されたメソッドは ISingleResult を返しますが、これは私の知る限り OK です。ビューでページングをサポートする必要があるため、ページの総数を知る必要があります。これは、すべてのアイテムの数を取得できる場合にのみ可能です。
ここで何が欠けていますか?
c# - キーを列挙しているときに辞書の値を変更できないのはなぜですか?
リストを列挙するときにこの例外がスローされる理由を完全に理解しています。列挙中に、列挙されたオブジェクトの構造が変更されないことを期待するのは合理的と思われます。ただし、辞書の値を変更すると、その構造も変更されますか?具体的には、そのキーの構造は?
wpf - 実行されたスレッドからのオブジェクトに対するInvalidOperationException
WPFアプリケーションでは、オブジェクトを作成するBackgroundWorkerスレッドがありました。オブジェクトをfooと呼びましょう。
バックグラウンドワーカーコード:
これで、メインクラスがゲッターを使用してFooPropertyにアクセスしようとすると、InvalidOperationExceptionが発生します。別のスレッドがオブジェクトを所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません。
オブジェクトの作成のスレッドが終了した場合、なぜそれがまだオブジェクトを所有しているのですか?どういうわけかこれの周りにありますか?
asp.net - InvalidCastException: System.Web.UI.PartialCachingControl -> MyCustomControl が OutputCaching の場合
問題: MyCustomControl から派生したコントロールで OutputCaching を使用できません。コントロールは、Page.LoadControl メソッドでデータベースからの定義を使用して動的にロードされます。
ascx <%@ OutputCache VaryByParam="*" Duration="3600"%> に追加すると、「InvalidCastException: System.Web.UI.PartialCachingControl -> MyCustomControl」例外がスローされます。
動的読み込み制御ロジックが含まれているアセンブリ ウィッチを変更できません。派生コントロールでそれを修正する方法はありますか?
2 番目の質問は、iis7 とネイティブの出力キャッシュに関するものです。この問題は解決しますか? (いくつかのパフォーマンス カウンターを設定しようとしましたが、キャッシュがヒットしていないことがわかりました...)
c# - null 許容オブジェクトには値が必要です
例外の説明にはパラドックスがあります: Nullable オブジェクトには値が必要です (?!)
これが問題です:
私は持っているDateTimeExtendedクラスを持っています
とコンストラクタ
このコードを実行する
InvalidOperationException次のメッセージとともに をスローします。
Null 許容オブジェクトには値が必要です。
myNewDT.MyDateTime.Value- 有効で、通常のDateTimeオブジェクトが含まれています。
このメッセージの意味と、何が間違っているのでしょうか?
oldDTEではないことに注意してくださいnull。Valuefromを削除しましたmyNewDT.MyDateTimeが、生成されたセッターが原因で同じ例外がスローされます。
.net - System.Drawing.Graphics を使用するときに InvalidOperationException を防ぐ方法は?
System.Drawing.Graphics.DrawLines(Pen pen, PointF[] points)マルチスレッド アプリケーションでメソッドを使用していますが、System.Drawing.Graphicsスレッド間で共有されていません。
なぜ投げ続けるのSystem.InvalidOperationException: The object is currently in use elsewhereですか?
