MVC4.0
サービスで以下を実行しています。
[OperationContract(Name = "GetHierarchyReportContents")]
[FaultContract(typeof(InvalidHierarchyNameException))]
[ServiceKnownType(typeof(Node))]
MemoryStream GetContents();
この関数は、ノード (エイリアスのため APINode) のリストを含むメモリ ストリームを提供します。基本的に、それが行うことはすべて次のとおりです。
BinaryFormatter formatter = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
formatter.Serialize(stream, data.ToList<APINode>());
stream.Seek(0, SeekOrigin.Begin);
return stream;
以下は、別のノードとの競合を防ぐために名前空間で定義される Node の定義です。
[DataContract (Name="Node",Namespace="API")]
[Serializable]
public class Node
{
public Node()
{
}
[DataMember]
public string Name { get; private set; }
}
クライアント アプリでは、次のことを行います。
BinaryFormatter bf = new BinaryFormatter();
List<Node> nodes = (List<Node>) bf.Deserialize(client.GetContents());
次のようなエラーが表示されます。
アセンブリ 'API、バージョン = 1.0.0.0、カルチャ = ニュートラル、PublicKeyToken = null' が見つかりません。
wsHttpBinding
クライアント接続に を使用しています。名前空間が何かを台無しにしている可能性があります。何か案は?