WCF呼び出しで渡したいオブジェクトを作成しましたがServiceReference1の内部に...このオブジェクトは再定義されています...元のオブジェクトはどこにでもあります...人々がこれをやったようですが、私が間違っていることを理解できません。WCFはService ReferenceのDataObjectの独自のバージョンを定義しています
オブジェクトは、サービスコントラクトの関数のパラメータとして使用されます。
[OperationContract(IsOneWay = true)]
void UpdateInformation(MyObject myObject);
私は私のクライアントからの関数を呼び出すしようとすると、私が手にエラーがある「引数1: 『MyNameSpace.ServiceReference1.MyObject』から 『MyNameSpaceDTO.MyObject』から変換できません」
オブジェクト自身のクラスライブラリdllにあり、[DataObject]および[DataMember]属性でマークされています。
namespace MyNameSpaceDTO
{
[DataContract]
public class MyObject
{
[DataMember]
public string Name { get; set; }
….
しかし、としてもサービス参照を追加した後Reference.csで終わる:また、私はは、サービス参照の追加の詳細]セクションで、次のセットを持っているん
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="MyObject", Namespace="http://schemas.datacontract.org/2004/07/MyNameSpaceDTO")]
[System.SerializableAttribute()]
public partial class MyObject : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
[System.NonSerializedAttribute()]
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
[System.Runtime.Serialization.OptionalFieldAttribute()]
private string NameField;
...
:
[X]参照アセンブリで再利用タイプ
(O)は、すべての参照アセンブリ内の型を再利用
あなたの溶液構造がどのように見えるのでしょうか?私はいくつかのアセンブリがあると思います:DTOを保持する契約アセンブリ、サービスをホストする別のアセンブリ、そしてそのサービスのクライアントとして機能する3番目のアセンブリ? – khlr
私はDTO用にクライアントとサービスコードの両方を含むライブラリを持っています...そして、クライアント関数をインスタンス化して使用する2つのWinFormsアプリケーションと、サービス関数をインスタンス化して使用するもう1つのアプリケーションがあります。 –
OK、クライアントアプリで_Add service reference_ダイアログを使用してサービスを参照しましたか? – khlr