問題タブ [datacontract]
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.
.net - WCF データコントラクト
内部クライアント用にホストされている WCF サービスがあります。すべてのクライアントを制御できます。したがって、データ コントラクト ライブラリを使用して、プロキシ生成の必要性をなくします。いくつかの読み取り専用プロパティを使用し、デフォルト コンストラクターのないデータ コントラクトを使用したいと考えています。ご協力いただきありがとうございます...
wcf - .NET 基本型は WCF でシリアル化できません
WCF サービスを作成していて、サービスの構成を変更できるように、いくつかのカスタム構成要素 (Custom ConfigurationSection や ConnectionStringSettings など) を公開したいと考えています。
私のカスタム構成要素の 1 つは、System.Configuration.ConfigurationElementCollection
. WCF サービスを開始しようとすると、次のエラー メッセージが表示されます...
タイプ 'System.Configuration.ConfigurationElementCollection' をシリアル化できません。これを DataContractAttribute 属性でマークし、シリアル化するすべてのメンバーを DataMemberAttribute 属性でマークすることを検討してください。
このタイプの DataContract を実装する方法はありますか? [DataContract] 属性でマークされた継承クラスがあります。
wcf - 複数の名前空間を持つ WCF メッセージの作成
WSTransfer の実装を作成しようとしています (Roman Kiss が既に WCF 用に作成していることは認識していますが、実際には仕様を満たしていません)。
WSTransfer は疎結合であるため、サービス コンタクトのデータ コントラクトを放棄することになりました。そのため、各作成メッセージは Message Create(Message request) のようになります。
これは問題なく動作し、応答を返すまではすべてがうまくいきます。
私が抱えている問題は、WSTransfer 応答が構築される方法にあります。create を例にとると、応答は次のようになります
ご覧のとおり、応答メッセージ内には 3 つの異なる XML 名前空間があります。
さて、関与するのは簡単です。(公開していなくても)、データ コントラクトを作成し、値を設定して、それを起動することができます
ただし、応答内の子要素に異なる名前空間を設定すると問題が発生します。WCFのデータコントラクトはこれを行わないようです。使っても
応答クラス内の個々の要素に変更が加えられていないように見える場合、すべてがコントラクト クラスに指定された名前空間の一部になります。
では、WCF メッセージ内の個々の要素に異なる名前空間を適用するにはどうすればよいですか。契約を介して、または他のジガリーポーカーを介して?
.net - .NET XmlDocument タイプを含む WCF DataContract/ServiceOperation
WCF 通信でネットワーク経由で送信されるデータ コントラクトについて疑問に思っています。相互運用性のために、データ コントラクトの一部としてネイティブ .NET 型を送信することはお勧めできません (許可されていない可能性さえありますか?)。
ServiceOperation
への入力として.NETXmlDocument
タイプを受け入れるサービスが必要です。タイプ(DataContract
属性でマークされる)を保持するラッパークラス(属性でマークされる)を作成し、これをパラメーターとして使用する場合、これは合法/可能ですか?XmlDocument
DataMember
ServiceOperation
XmlDocument
タイプの利便性を維持しながら、相互運用性を確保するにはどうすればよいですか? string
のパラメーターとしてa を受け入れてから、サービス側でメソッドを使用してServiceOperation
an をインスタンス化する方が良い設計上の選択ではないでしょうか?XmlDocument
XmlDocument.LoadXml(string)
ヘルプ/ビュー/コメントをお待ちしております。wcf を使い始めたばかりなので、最初にサービスの作成に飛び込む前に、頭の中の混乱を解消したいと思います。
ありがとう!
wcf - wcfサービスからサービスへの通信およびデータ契約
私は最近、一種のマルチキャストリレーとして機能するWCFサービスの開発に携わっています(つまり、着信データを受け取り、処理を行ってから、他の複数の外部サービスに送信します)。このサービス(私は「マイサービス」と呼びます)は、2番目の内部サービスによってデータが供給されます。
このデータは、文字列に保持されたXMLとして私のサービスから中継されます。したがって、私のサービスはメソッド要求のパラメーターとして文字列を受け入れることができますが、型の安全性が失われるため、これは理想的ではありません。
2番目のサービスには、サービスが処理され、最終的に外部サービスに中継される必要があるすべての情報をカプセル化するクラスがあります。
2番目のサービスは、データコントラクトでこのクラスを公開します。理想的には、型の安全性を維持し、2番目のサービスの実装に多くの変更を加えることなく、この型のクラスをサービス操作の引数として受け入れる必要があります。
コードを複製せずにこのタイプのクラスが必要であるとデータコントラクトで言うための最良の方法は何でしょうか?この2番目のクラスにサービス参照を追加してから、データコントラクトで作成されたプロキシクラスを使用できますか?
些細な問題のように見えますが、私はこれに頭を悩ませることができません!
助けを応援します!
wcf - エンタープライズ レベルの DataContracts は適切なプラクティスですか?
個々の WCF サービス ソリューション レベルで DataContract を定義するのではなく、エンタープライズ レベルのアセンブリで DataContract を定義してから WCF サービス プロジェクトで参照することは良い方法ですか? 私が見たすべての WCF の例は、そのトピックを避けており、サービス ソリューションで DataContracts のみを定義しています。私が話をした一部のプログラマーは、DataContracts を、サービス ローカル コントラクトではなく、エンタープライズ レベルの正規データ モデルの別のフレーバーと見なしたいと考えています。私はまだその観点に賛成または反対する議論を見つけていません.
この質問に対する正しい答えを選ぶのは難しいかもしれませんが、試してみます。少なくとも、トピックの理解に役立つと思われるものには賛成票を投じます。
c# - SOA WCF Webサービスを設計する際のベストプラクティスは何ですか?
次のような運用契約がある場合:
これは次のように再設計できます。
MessageContractについて私が気に入っていることの1つは、SOAPメッセージの形式をもう少し明示的に制御できることです。
同様に、ほぼ同じコードを記述できますが、DataContractを使用します。
DataContractについて私が気に入っていることの1つは、IsRequired、Order、およびNameを定義できることです。
今日、私は唯一の消費者がWCFクライアントになることを期待しています。ただし、最初に契約を設計し、SOAの慣行を可能な限り遵守したいと思います。WCFにSOAP、WSDL、およびXSDを指示させるのではなく、XMLでWCFレイヤーを定義する必要がありますが、カスタムメッセージ処理をWCFに追加しないように、WCFを使用してこれを生成します。おそらくすべてのタグが小文字で始まると思われる最も一般的なSOAXML規則に従いたいのですが、正しいですか?そして、私は可能な限りバージョントレラントになりたいと思っています。
常にこのような要求メッセージと応答メッセージを作成するのが賢明ですか?3つのフォーマットのどれがベストSOAプラクティスを促進しますか?さらに一歩進んで、DataContractとMessageContractの両方を定義し、MessageContractにDataContractのみが含まれるようにする必要がありますか?または、本当に新しいタイプを公開している場合(つまり、メッセージタイプをコンテナーとして作成しない場合)にのみDataContractsを使用する必要がありますか?
たくさんの質問がありますが、その核心をつかもうとしています。質問を分離することで、探している答えを得るのに十分なコンテキストが得られるかどうかはわかりません。
.net - 移植可能/相互運用可能な WCF コントラクト
古い Microsoft Web サービス テクノロジ (WSE など) と、 Java 呼び出し WCF Web サービス。
例: コントラクトで DateTime を型として公開するときに考慮する必要がある特別なルールはありますか? 辞書とハッシュテーブルはどうですか? 利用可能なさまざまなバインディングで遭遇する可能性のある問題は何ですか?
wcf - WCF での汎用 DataContract の命名
ジェネリック クラスを応答データ コントラクトとして使用しています。すべてが順調で、これにより、WCF サービスの設計が大幅に合理化されています。
各リクエストには、次のシグネチャを持つ標準のレスポンス オブジェクトが与えられます。
- ステータス (列挙型)
- メッセージ (文字列)
- 結果 (T)
以下は応答クラスです。
そして、これは見事に機能します。私が抱えている唯一の問題は、WCFクライアントがこのオブジェクト「ResponseOfAccountnT9LOUZL」に本当にくだらない名前を付けられていることです
この問題を回避する方法はありますか?
このクラスを継承された単なる抽象クラスとして使用する必要がありますか? 複数のクラスでコードが乱雑になるのは避けたいと思います。
.net - .NET DataContract のシリアル化を制御して、要素ではなく XML 属性を使用するにはどうすればよいでしょうか?
としてマークされたクラスと、属性DataContract
でマークされたいくつかのプロパティがある場合DataMember
、簡単に XML にシリアル化できますが、次のような出力が作成されます。
私が好むのは、次のような属性です...
属性を使用するDataMember
と、名前と順序を制御できますが、要素としてシリアル化されるか属性としてシリアル化されるかは制御できません。私は周りを見回して見つけましたが、もっと簡単な解決策があることを願っていますDataContractFormat
。IXmlSerializable
これを行う最も簡単な方法は何ですか?