我试图在我的本地机器上实现hazelcast嵌入式架构,因此编写了两个C#控制台应用程序,不同的进程(两个vs实例)。所以我的主要目标是首先应用程序写入数据,然后再读取相同内容。我的代码看起来像吼叫
ConsoleApp1(标准模板):
static void Main(string[] args)
{
var clientConfig = new ClientConfig();
clientConfig.GetNetworkConfig().AddAddress("127.0.0.1");
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());
}
}
第二
static void Main(string[] args)
{
var clientConfig = new ClientConfig();
clientConfig.GetNetworkConfig().AddAddress("127.0.0.1");
var sc = new SerializerConfig()
.SetImplementation(new CustomSerializer())
.SetTypeClass(typeof(Person));
clientConfig.GetSerializationConfig().AddSerializerConfig(sc);
IHazelcastInstance client = Hazelcast.Client.HazelcastClient.NewHazelcastClient(clientConfig);
IMap<string, Person> mapPersons = client.GetMap<string, Person>("persons");
Console.WriteLine(mapPersons.Size());
foreach (var person in mapPersons.Values() )
{
Console.WriteLine(person.Name);
}
}
当我运行第二个应用程序时,我收到错误“Hazelcast.IO.Serialization.HazelcastSerializationException:'无法找到程序集'ConsoleApp1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'。”
如何设置这种环境?
谢谢
找到了解决方案,我只将类Person移动到两个解决方案中的单独的类库中,并且它起作用了。很有意思。