問題タブ [partial-classes]
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.
ado.net - ADO.net エンティティ データ モデルでエンティティを補完する
(MVC フレームワークをいじって) ADO.net Entity Data Model を作成しました。ここで、コンテキストのサブセットを返す関数を作成するなど、いくつかのビジネス ロジックで拡張したいと考えています。部分クラスはデータ モデルと一緒に作成されるため、次のように部分クラスを宣言する新しいファイルを作成しました。
その中に GetMovieById(int id) という関数を配置すると、結果は次のようになります。
プロジェクトを開始するまでエラーは発生しません。エラーは次のとおりです。
コンパイラ エラー メッセージ: CS1061: 'RecordStore.Models.MovieDBEntities' には 'MovieSet' の定義が含まれておらず、タイプ 'RecordStore.Models.MovieDBEntities' の最初の引数を受け入れる拡張メソッド 'MovieSet' が見つかりませんでした (ディレクティブまたはアセンブリ参照を使用していますか?)
部分クラスの他の部分に MovieSet が含まれているため、エラーがわかりません。私の質問は、基本的に、これがデータ モデルを拡張する方法ではない場合、どのような方法でしょうか。それが方法である場合、なぜこのエラーが発生するのですか?
c# - C# 部分クラスの XML シリアル化の順序を制御するものは何ですか?
で説明したように、C# のフィールドの順序は重要ですか? 、シリアライズ可能なプロパティの順序は、特に XmlSerializer の出力に影響します。
しかし、フィールドが (部分クラスを使用して) 2 つのファイルにある場合、結果の順序を実際に制御しているものを知っている人はいますか? つまり、どのファイルのプロパティが最初に来ますか?
(背景: 2 つのファイルの 1 つが xsd から自動生成され、もう 1 つが手動で編集されるシナリオに遭遇したため、これを尋ねます。テスト出力は、開発者ボックスとスクリプト化されたビルド ボックスで異なります。おそらくこれは、2 つの環境での xsd->C# ステップのタイミングと履歴のいくつかの違いの副作用です. 修正方法はさまざまですが、可能であればコンパイル プロセスをもう少しよく理解したいと思います.)
c# - 別のアセンブリでc#コードを拡張する
オブジェクトに新しいプロパティを追加したり、このオブジェクトを処理する別のクラスのメソッドを拡張したりするなど、追加する必要のある機能がいくつかあります。私が使用している製品(C#2.0)のソースコードを扱っていますが、実際には変更したくないので、拡張したいだけです。
理想的には、これを行うための別のアセンブリを用意して、それがコードであることを明確にしたいと思います。部分的なクラスとデリゲートが進むべき道のようですが、これが可能かどうかはわかりません。誰かが似たようなことをしましたか?または何か良い記事を知っていますか?
c# - Asp.Net で部分クラスを作成する
私は小さなWebアプリケーションを持っています。
これが私がやりたいことです: コード ビハインド ファイルを分割する部分クラスを作成します。部分クラスを直接作成できないのはなぜですか?
これが分離コード ファイルの場合:
また、このクラスを作成します。
「現在のコンテキストにテストが存在しません」というエラー メッセージが表示されます。
どうしてこれなの?
System.Web.UI.Page から継承するいくつかの部分クラスを作成し、このクラス (部分クラスの結果) から分離コード ファイルを継承すると、すべてが機能します。これが唯一の方法ですか?
コードビハインドと aspx ページがクラスに動的にコンパイルされることと関係がありますか?
誰かが私の問題に答えていただければ幸いです。現在はうまくいっていますが、コードビハインドと同じ「レベル」で部分クラスを作成し、継承の使用を避けたいと思います。
ありがとう/ジョン
(両方のクラスの前にアンダースコアがありますが、プレビューには 1 つしか表示されないことに注意してください。理由はわかりません..)
linq-to-sql - 抽象クラス内の部分メソッド (C#)
LINQ to SQL クラスの部分クラスで継承できる抽象クラスを作成しています。LINQ to SQL クラスには、組み込みの部分メソッドが多数含まれています。抽象クラスに 1 つ以上の部分メソッドを実装する方法はありますか? 部分メソッドは部分クラスまたは構造体にのみ含めることができることを知っています。きっと何か別の方法があるに違いない。
詳細は次のとおりです。
- News というデータベース テーブルがあるとします。このテーブルを含む LINQ to SQL dbml ファイルを作成すると、自動生成されたコードによって News の部分クラスが生成されます。
- この部分クラスには、いくつかの部分メソッドが含まれています。
- すべての LINQ to SQL クラスで使用したいいくつかのメソッドを含む、作成中のクラスがあります。
- これらのメソッドの 1 つは、各 LINQ to SQL クラスに追加される部分メソッドです。このメソッドに使用する共通のボディがあります。このメソッドを各部分クラスに追加するのではなく、一度作成して基本クラスの継承で継承する方法を探しています。
詳細を説明するのに役立つことを願っています。
c# - 部分クラスを使用してコードビハインドファイルからインライン(ascx)メソッドを呼び出す
.net2.0を使用しています。設計中に多くの更新が必要になるため、C#メソッドの1つをascxファイル内のインラインサーバースクリプトブロックに配置したいと思います。このようにして、大きなプロジェクトを毎回コンパイルする必要はありません。
コードビハインドファイル内からメソッドを呼び出したいと思います。これを行うには、コードビハインドファイルに仮想スタブメソッドを挿入し、ascxファイルでオーバーライドします。今、部分クラスを使い始めたので、メソッドを直接呼び出すことができると期待していました。これは不可能ですか?
ありがとう
c# - 部分的な LINQ to SQL エンティティ クラスに IDisposable を実装する
部分クラスを使用して LINQ to SQL エンティティ クラスを拡張していますが、エンティティ オブジェクトの一部のプロパティを既定の状態にリセットする最善の方法を考えています。
私の部分クラスはアンマネージ リソースを使用しません。そして、私が知る限り; LINQ to SQL エンティティ クラスも同様です。IDisposable
そこで、 内のプロパティのリセットを実装して処理しようと考えていますDispose()
。
- このアプローチについてどう思いますか?
- そして、前述のプロパティを
null
何か他のものに設定しますか?
wcf - ネットワーク経由でインターフェイス定義を送信する (WCF サービス)
Entity Framework オブジェクト (および負荷を軽減するために使用される他の構造体や単純なクラス) を生成し、それらをクライアント アプリケーションに送信する WCF サービスがあります。
2 つのクラスを変更してインターフェイスを実装し、アプリケーションでそれらを単一のオブジェクト タイプとして参照できるようにしました。この例によく似ています: Entity Framework によって生成されたプロパティにインターフェイスを実装することを強制することは可能ですか?
ただし、ネットワーク経由で送り返されるオブジェクトで直接参照されないため、インターフェイス タイプは WCF サービス プロキシ クライアントの thingymebob に追加されません。
したがって、サービス プロキシ クラスを使用するアプリケーションでは、インターフェイスをキャストまたは参照できません。
私が見逃しているアイデアはありますか?
コード例を次に示します。
c# - シリアライズ可能な部分クラス
次の VB.NET クラス定義があります。
別のファイル内には同じものがあります(もちろん、メソッドと変数は異なります)。コンパイルすると、次のエラーが発生します。
属性 'SerializableAttribute' を複数回適用することはできません。
エラーはかなり自明です。私の質問は、1 つのクラスを Serializable() としてマークするだけで、クラス全体が serializable() としてマークされていると仮定できますか? つまり、serializable() タグはクラス内の 1 か所だけでよいのでしょうか?
.net - OnValidate() と LINQ to Entities
Scott Guthrie が MVC Nerddinner チュートリアル ( http://nerddinnerbook.s3.amazonaws.com/Part3.htm ) で行ったようなビジネス ルールの検証を実装したいと考えていますが、そうしようとすると問題が発生します。
Scott はチュートリアルで Linq to SQL を使用していました。彼はデータ オブジェクトの部分クラスを作成し、OnValidate() と呼ばれる部分メソッドを実装します。これは、彼によると、特定のデータ オブジェクトのデータがデータベースに永続化されるときに実行されるフックです。
私の問題は、Linq to Entities を使用していて、上記のような「フック」メソッドが使用できないか、少なくとも存在する場合は見つからないことです。Linq to Entities を使用してこれを行う方法について誰かが私に骨を投げることができますか?