Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用CSharp在Kafka中自定义序列化_C#_.net_Serialization_Apache Kafka_Customserializer - Fatal编程技术网

C# 使用CSharp在Kafka中自定义序列化

C# 使用CSharp在Kafka中自定义序列化,c#,.net,serialization,apache-kafka,customserializer,C#,.net,Serialization,Apache Kafka,Customserializer,我想用CSharp为kafka编写一个自定义序列化程序。我搜索了很多,但没有找到关于如何用dotnet语言为kafka编写自定义序列化程序的好参考 有没有关于如何写一个和如何做的想法?我刚刚找到了这个问题的答案。 dotnet中用于卡夫卡的库由confluent提供 应该有一个实现接口的序列化类: Confluent.Kafka.ISerializer<T> Confluent.Kafka.ISerializer 通常,我们应该通过ProducerBuilder类创建生产者:

我想用CSharp为kafka编写一个自定义序列化程序。我搜索了很多,但没有找到关于如何用dotnet语言为kafka编写自定义序列化程序的好参考


有没有关于如何写一个和如何做的想法?

我刚刚找到了这个问题的答案。 dotnet中用于卡夫卡的库由confluent提供

应该有一个实现接口的序列化类:

Confluent.Kafka.ISerializer<T>
Confluent.Kafka.ISerializer
通常,我们应该通过ProducerBuilder类创建生产者:

Confluent.Kafka.ProducerBuilder<TKey, TValue>
Confluent.Kafka.ProducerBuilder
此类中有一个方法可以为键和值设置序列化程序。 它与Kafka中定制序列化程序的原始文档略有不同,后者指示在producer配置中设置定制序列化程序类的名称

以下是设置值序列化程序的代码:

var config = new ProducerConfig
{
    BootstrapServers = "localhost:9092",
    ClientId = "thiPC"
};

var producerBuilder = new ProducerBuilder<Null, Customer>(config);
producerBuilder.SetValueSerializer(new CustomerSerializer());       // <------ The Magic Code
var producer = producerBuilder.Build();
var config=new ProducerConfig
{
bootstrapserver=“localhost:9092”,
ClientId=“thiPC”
};
var producerBuilder=新的producerBuilder(配置);

producerBuilder.SetValueSerializer(新CustomerSerializer());// 我只是找到了这个问题的答案。 dotnet中用于卡夫卡的库由confluent提供

应该有一个实现接口的序列化类:

Confluent.Kafka.ISerializer<T>
Confluent.Kafka.ISerializer
通常,我们应该通过ProducerBuilder类创建生产者:

Confluent.Kafka.ProducerBuilder<TKey, TValue>
Confluent.Kafka.ProducerBuilder
此类中有一个方法可以为键和值设置序列化程序。 它与Kafka中定制序列化程序的原始文档略有不同,后者指示在producer配置中设置定制序列化程序类的名称

以下是设置值序列化程序的代码:

var config = new ProducerConfig
{
    BootstrapServers = "localhost:9092",
    ClientId = "thiPC"
};

var producerBuilder = new ProducerBuilder<Null, Customer>(config);
producerBuilder.SetValueSerializer(new CustomerSerializer());       // <------ The Magic Code
var producer = producerBuilder.Build();
var config=new ProducerConfig
{
bootstrapserver=“localhost:9092”,
ClientId=“thiPC”
};
var producerBuilder=新的producerBuilder(配置);

producerBuilder.SetValueSerializer(新CustomerSerializer());//看起来KafKa是一个消息代理,不控制消息的内容。序列化处理消息的内容。可能是您想发送Xml格式的消息,然后使用Xml序列化程序。我刚刚找到答案!它是通过在ProducerBuilder类中使用SetValueSerializer和SetKeySerializer实现的。我会很快发布答案。@jdweng请看答案。让我知道你的想法。图书馆只是处理信息,而不是内容。该链接作为测试消息“hello world”发送。您询问了消息内容的序列化。您不需要编写自定义序列化程序。使用以下命令并发送MemoryStream的内容:MemoryStream mWriter=new MemoryStream();XmlWriter=XmlWriter.Create(mWriter);XmlSerializer serializer=新的XmlSerializer(typeof(MyClass));我知道如何使用现有的序列化程序,我的问题是如何开发“自定义序列化程序”。看起来KafKa是一个消息代理,不控制消息的内容。序列化处理消息的内容。可能是您想发送Xml格式的消息,然后使用Xml序列化程序。我刚刚找到答案!它是通过在ProducerBuilder类中使用SetValueSerializer和SetKeySerializer实现的。我会很快发布答案。@jdweng请看答案。让我知道你的想法。图书馆只是处理信息,而不是内容。该链接作为测试消息“hello world”发送。您询问了消息内容的序列化。您不需要编写自定义序列化程序。使用以下命令并发送MemoryStream的内容:MemoryStream mWriter=new MemoryStream();XmlWriter=XmlWriter.Create(mWriter);XmlSerializer serializer=新的XmlSerializer(typeof(MyClass));我知道如何使用现有的序列化程序,我的问题是如何开发“自定义序列化程序”。