問題タブ [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.
c# - 部分クラスのオーバーライド属性 (DBML)
部分クラスに設定された属性をオーバーライドすることは可能ですか?
したがって、次のような自動生成された部分クラスが 1 つあります。
これは私の DBML で生成されます。問題は、クラスでこのテーブルを使用したくないことです。「dbo.ActiveUsers」というビューを作成しましたが、これを代わりに使用したいと考えています (非アクティブ化されたユーザーを除外するため)。
次のように、同じ属性を持つ別の部分クラスを作成しようとしました。
しかし、私はエラーが発生します:
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
キーワードを使用せずに、派生クラスがメソッドの戻り値の型をオーバーライドできるようにする抽象メソッドを基本クラスに追加する方法はありますか?
それとも、間違った角度からこれに取り組んでいるのかもしれません。私の問題を解決できる他のテクニックがありますか?
編集
ポージェスのアプローチを採用して、エンティティで達成したいことのユースケースを次に示します。
c# - 部分的なクラスのデバッグ
xsd自動生成クラスの部分クラスを作成しました。問題は、この部分クラスのデバッグにあります。ブレークポイントが認識されないか、コンパイラが部分クラスに設定されたブレークポイントでブレークしません。
}
entity-framework - EntityState、HasChanges、HasPropertyChanges は部分クラスでどのように機能しますか?
部分クラスのいくつかのプロパティで拡張した EntityFramework からのクラスがあります。インターフェイスでこれらのプロパティの値を公開して編集すると、すべて正常に動作します。しかし、ViewModel のプロパティの値の変更を検出したいのですが、コレクションの EntityState、HasChanges、HasPropertyChanges プロパティを調査しているときに、それらはすべて変更されていないか false ですか?! 自分のプロパティの値が変更されていることがわかりますが...
では、HasChanges、HasPropertychanges フラグ、または EntityState を更新するために、部分クラスで何か特別なことをする必要がありますか? 依存関係プロパティはこれを行うためのより正しい方法ですか?
使用: MVVM、SL4、EF、WCF RIA サービス。
c# - 同じ名前のメソッドを持つ部分クラス
私はこのような部分的なクラスを持っています
これらの2つのクラスは、ビルド時にどのようにマージされますか?説明をお願いします。
c# - WPF、2 つの UserControl クラス間でメソッドを共有
私は2つのUserControl
クラスRequiredFields
を持っていOptionalFields
ます. Fields
から継承し、と の両方を使用するUserControl
メソッドを含む基本クラスが必要でした。ただし、それを実行しようとすると、次のエラーが発生します。RequiredFields
OptionalFields
'MyNamespace.OptionalFields' の部分宣言では、異なる基本クラスを指定してはなりません
ここに私のクラス定義があります:
の代わりにクラスを作成Fields
したり、通常の非抽象非部分クラスにしたりしても、同じエラーが発生します。partial
abstract
私がやりたいことは可能/合理的ですか?UserControl
そうでない場合、インスタンス間でメソッドを共有する最善の方法は何ですか?
entity-framework - 別のプロジェクトで使用する場合、EF4 Model-First エンティティは「非部分可能」
先週末、tekpub EF4 シリーズを開き、新しいサイトで始めた亜音速のものを置き換えました。ただし、エンティティが別のドメイン プロジェクトにあるため、MVC2 アプリでエンティティを「部分的に」処理できないことに、少し戸惑いました。私は自分の EF4 モデルを自分のアプリに正しく配置するというひどいことをしましたが、それはうまくいきました (MVC2 を扱う TekPub vid にもこの設定がありましたが、これは同じ理由によるのでしょうか?)。これができなかった明確な理由はありませんでした。私は何か見落としてますか?
c# - 部分的なユーザー コントロール
Asp.net Web フォームでは、ユーザー コントロールが部分的でなければならないのはなぜですか? 部分的なキーワードを削除しようとしましたが、次のように表示されます。
'test' 型の宣言に部分修飾子がありません。この型の別の部分宣言が存在します
他の宣言はどこにありますか?
ユーザーコントロールでジェネリック型を渡そうとしていますが、どうすればよいですか? 他の宣言も変更しないとできません。見つからなかったので、部分的なキーワードを削除しました。
注: WebApplication を作成している場合は 3 つのファイルがありますが、Web サイトを作成している場合は 2 つのファイルしか取得できません。
ウェブサイトで他の宣言はどこにありますか?
ジェネリックが必要な理由は、グリッドユーザーコントロールを作成しているため、データソースが持つタイプを渡したいからです。
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:
.net - Form の追加の部分クラス
部分クラス アプローチを使用してピースに分割したい大きな Form クラスがあります。
これは、プロジェクト ファイルを手動で変更し、MainFormPN.vb エントリを追加することで実行できます。
このアプローチの問題は、VS2008 IDE でこの項目をダブルクリックすると、MainForm UI ではなく、新しい空のフォームが表示されることです。VS2008 はフォームの複数の部分クラスをサポートしていないようです。それは可能ですか?