問題タブ [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.

0 投票する
1 に答える
1523 参照

c# - 部分クラスのオーバーライド属性 (DBML)

部分クラスに設定された属性をオーバーライドすることは可能ですか?

したがって、次のような自動生成された部分クラスが 1 つあります。

これは私の DBML で生成されます。問題は、クラスでこのテーブルを使用したくないことです。「dbo.ActiveUsers」というビューを作成しましたが、これを代わりに使用したいと考えています (非アクティブ化されたユーザーを除外するため)。

次のように、同じ属性を持つ別の部分クラスを作成しようとしました。

しかし、私はエラーが発生します:

0 投票する
2 に答える
1737 参照

c# - ジェネリックなしの派生クラスでメソッドの戻り値の型を再定義する

TL;DR:

ジェネリックを使用せず、newキーワードを使用せずに、派生クラスがメソッドの戻り値の型をオーバーライドできるようにする抽象メソッドを基本クラスに追加する方法はありますか?


LLBLGen Pro 用のカスタム テンプレートの開発に取り組んでいます。その過程で、LLBLGen Pro が提供するデフォルトのテンプレートを変更することを拒否します。そのため、他の人が私のテンプレートを実装することを選択した場合に、私のアプローチによって他の人のファイルが上書きされることはありません。

私が取り組み始めた (そして順調に進んでいる) タスクの 1 つは、エンティティごとに DTO を生成するテンプレートを開発することです。これらの方針に沿って、目的の 1 つは私のエンティティにToDTO()メソッドを提供することです。ジェネリック プログラミングの観点から、共通の基底クラス内でこのメソッドを定義することにしました。ここから問題が始まります。


基本クラスでメソッドを定義する目的は、特定のエンティティではなく、 で作業したいToDTO()汎用リポジトリ (メソッドなどを使用) を作成しようとしているからです。 .Fetch()CommonEntityBase


LLBLGen はそのCommonEntityBaseクラスを次のように定義します。

私の当初の計画は、私のメソッドを次のように別の部分クラスに追加することでした:

継承されたクラスは、次のように、メソッドで戻り値の型を基本クラスの戻り値の型から派生した型として定義できると思いました。

しかし、私は間違っていました。


私の2番目の試みは、ジェネリックを使用してクラスを定義することでした。

十分に単純です。私がしなければならないことは、生成されたエンティティ クラスがこの新しいエンティティ ベースから継承されるようにすることだけです。1つだけ注意してください。LLBLGen のテンプレートを上書きしたくないので、部分クラスに戻ります。

LLBLGen の個々のエンティティには、次の定義があります。

ここに私の問題があります。メソッドを機能させるには、次の定義で独自の部分クラスを作成する必要があります。

もちろん、これは不可能です。 なぜなら、私が今知っているように、

基本クラスを指定する [部分クラスの] 部分はすべて一致する必要がありますが、基本クラスを省略した部分は依然として基本型を継承します。


3 番目に試みたのは、基本クラスの関数定義をnewキーワードで単純にオーバーライドすることでした。

ただし、 としてキャストされたときにPersonEntityのメソッドにアクセスできるようにしたいので、これは私のアプローチの目的を完全に無効にします。このアプローチでは、次のことを行います。ToDTO()CommonEntityBase

null になってしまいdtoますが、これは望ましくありません。


私の最初のアプローチと、それがうまくいかない理由について議論しているさまざまな リンクに出くわしました。通常、一般的な意味での解決策として私の一般的なアプローチを指しています。ただし、私の状況では、ジェネリックは機能していないようです。


これはすべて、私が達成しようとしていることが可能かどうかを尋ねるためのものです。

ジェネリックを使用せず、newキーワードを使用せずに、派生クラスがメソッドの戻り値の型をオーバーライドできるようにする抽象メソッドを基本クラスに追加する方法はありますか?

それとも、間違った角度からこれに取り組んでいるのかもしれません。私の問題を解決できる他のテクニックがありますか?


編集

ポージェスのアプローチを採用して、エンティティで達成したいことのユースケースを次に示します。

0 投票する
1 に答える
4782 参照

c# - 部分的なクラスのデバッグ

xsd自動生成クラスの部分クラスを作成しました。問題は、この部分クラスのデバッグにあります。ブレークポイントが認識されないか、コンパイラが部分クラスに設定されたブレークポイントでブレークしません。

}

0 投票する
1 に答える
733 参照

entity-framework - EntityState、HasChanges、HasPropertyChanges は部分クラスでどのように機能しますか?

部分クラスのいくつかのプロパティで拡張した EntityFramework からのクラスがあります。インターフェイスでこれらのプロパティの値を公開して編集すると、すべて正常に動作します。しかし、ViewModel のプロパティの値の変更を検出したいのですが、コレクションの EntityState、HasChanges、HasPropertyChanges プロパティを調査しているときに、それらはすべて変更されていないか false ですか?! 自分のプロパティの値が変更されていることがわかりますが...

では、HasChanges、HasPropertychanges フラグ、または EntityState を更新するために、部分クラスで何か特別なことをする必要がありますか? 依存関係プロパティはこれを行うためのより正しい方法ですか?

使用: MVVM、SL4、EF、WCF RIA サービス。

0 投票する
8 に答える
14517 参照

c# - 同じ名前のメソッドを持つ部分クラス

私はこのような部分的なクラスを持っています

これらの2つのクラスは、ビルド時にどのようにマージされますか?説明をお願いします。

0 投票する
2 に答える
603 参照

c# - WPF、2 つの UserControl クラス間でメソッドを共有

私は2つのUserControlクラスRequiredFieldsを持っていOptionalFieldsます. Fieldsから継承し、と の両方を使用するUserControlメソッドを含む基本クラスが必要でした。ただし、それを実行しようとすると、次のエラーが発生します。RequiredFieldsOptionalFields

'MyNamespace.OptionalFields' の部分宣言では、異なる基本クラスを指定してはなりません

ここに私のクラス定義があります:

の代わりにクラスを作成Fieldsしたり、通常の非抽象非部分クラスにしたりしても、同じエラーが発生します。partialabstract

私がやりたいことは可能/合理的ですか?UserControlそうでない場合、インスタンス間でメソッドを共有する最善の方法は何ですか?

0 投票する
1 に答える
111 参照

entity-framework - 別のプロジェクトで使用する場合、EF4 Model-First エンティティは「非部分可能」

先週末、tekpub EF4 シリーズを開き、新しいサイトで始めた亜音速のものを置き換えました。ただし、エンティティが別のドメイン プロジェクトにあるため、MVC2 アプリでエンティティを「部分的に」処理できないことに、少し戸惑いました。私は自分の EF4 モデルを自分のアプリに正しく配置するというひどいことをしましたが、それはうまくいきました (MVC2 を扱う TekPub vid にもこの設定がありましたが、これは同じ理由によるのでしょうか?)。これができなかった明確な理由はありませんでした。私は何か見落としてますか?

0 投票する
4 に答える
2298 参照

c# - 部分的なユーザー コントロール

Asp.net Web フォームでは、ユーザー コントロールが部分的でなければならないのはなぜですか? 部分的なキーワードを削除しようとしましたが、次のように表示されます。

'test' 型の宣言に部分修飾子がありません。この型の別の部分宣言が存在します

他の宣言はどこにありますか?

ユーザーコントロールでジェネリック型を渡そうとしていますが、どうすればよいですか? 他の宣言も変更しないとできません。見つからなかったので、部分的なキーワードを削除しました。

注: WebApplication を作成している場合は 3 つのファイルがありますが、Web サイトを作成している場合は 2 つのファイルしか取得できません。

ウェブサイトで他の宣言はどこにありますか?


ジェネリックが必要な理由は、グリッドユーザーコントロールを作成しているため、データソースが持つタイプを渡したいからです。

0 投票する
1 に答える
1055 参照

c# - How do you deserialize Transunion XML?

Here is my attempt, xsd and classes created from xsd.exe

Running my code I get error "There is an error in XML document (1, 2)." Inner exception {" was not expected."}

Any help would be greatly appreciated.

Thanks!

XML Snippet:

XSD Snippet:

Class Snippet:

Code Snippet:

0 投票する
2 に答える
1152 参照

.net - Form の追加の部分クラス

部分クラス アプローチを使用してピースに分割したい大きな Form クラスがあります。

これは、プロジェクト ファイルを手動で変更し、MainFormPN.vb エントリを追加することで実行できます。

このアプローチの問題は、VS2008 IDE でこの項目をダブルクリックすると、MainForm UI ではなく、新しい空のフォームが表示されることです。VS2008 はフォームの複数の部分クラスをサポートしていないようです。それは可能ですか?