【发布时间】:2017-12-21 10:02:18
【问题描述】:
我试图在我的本地机器上实现 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: 'Unable to find assembly 'ConsoleApp1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'。"强>
如何设置这种环境?
谢谢
【问题讨论】:
-
你有这个问题吗:stackoverflow.com/questions/13090955/…你是不是在两个不同的程序集中定义了Person?
-
嗯,是的,我在两种解决方案中都定义了 person,但是有没有办法通过配置 ClienConfig() 而不是制作 lib 来解决?
-
“配置 ClienConfig()”是什么意思。我不明白这个问题。