呼び出しのターゲットによってスローされました - 例外がされています呼び出しのターゲットによってスローされます。Hazelcast DotNetのクライアントエラー:例外が、私はこの<a href="https://github.com/asimarslan/hazelcast-dotnet-examples" rel="nofollow noreferrer">link</a></p> <p>からのサンプルコードを使用してキャッシュサーバをhazelcastに接続しようとしています。しかし、私は以下のエラーを取得しています
ヘイゼルキャストキャッシュサーバーが(ローカルシステムで)実行されていることを確認しました。それは5701ポートで実行されており、同じC#コードが記載されています。以下は
コードです:
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using Hazelcast.Config;
using Hazelcast.Client;
using Hazelcast.Core;
using Hazelcast.IO;
using Hazelcast.IO.Serialization;
namespace Hazelcast.Client.Example
{
public class ExampleWithCustomSerializer
{
static void Main(string[] args)
{
var clientConfig = new ClientConfig();
clientConfig.GetNetworkConfig().AddAddress("127.0.0.1:5701");
var sc = new SerializerConfig()
.SetImplementation(new CustomSerializer())
.SetTypeClass(typeof(Person));
//Custom Serialization setup up for Person Class
clientConfig.GetSerializationConfig().AddSerializerConfig(sc);
IHazelcastInstance client = HazelcastClient.NewHazelcastClient(clientConfig);
//All cluster operations that you can do with ordinary HazelcastInstance
IMap<string, Person> mapCustomers = client.GetMap<string, Person>("persons");
mapCustomers.Put("1", new Person("Joe", "Smith"));
mapCustomers.Put("2", new Person("Ali", "Selam"));
mapCustomers.Put("3", new Person("Avi", "Noyan"));
ICollection<Person> persons = mapCustomers.Values();
foreach (var person in persons)
{
Console.WriteLine(person.ToString());
}
HazelcastClient.ShutdownAll();
Console.ReadKey();
}
}
class CustomSerializer : IStreamSerializer<Person>
{
public int GetTypeId()
{
return 10;
}
public void Destroy()
{
//NOOP
}
public void Write(IObjectDataOutput output, Person t)
{
byte[] array;
var bf = new BinaryFormatter();
using (var ms = new MemoryStream())
{
bf.Serialize(ms, t);
array = ms.ToArray();
}
output.WriteInt(array.Length);
output.Write(array);
}
public Person Read(IObjectDataInput input)
{
var bf = new BinaryFormatter();
var len = input.ReadInt();
var buffer = new byte[len];
input.ReadFully(buffer);
Person result = null;
using (var ms = new MemoryStream(buffer))
{
result = (Person)bf.Deserialize(ms);
}
return result;
}
}
[Serializable]
public class Person
{
private string name;
private string surname;
public Person(string name, string surname)
{
this.name = name;
this.surname = surname;
}
public string Name
{
get { return name; }
set { name = value; }
}
public string Surname
{
get { return surname; }
set { surname = value; }
}
public override string ToString()
{
return "Person{ name:" + name + ", surname:"+surname + " }";
}
}
}
誰もがこの問題を解決するために私を助けることができるが、事前に感謝します。