如何在C#接口中实现泛型?
嗨,我正在尝试在C#接口中实现泛型。我有一种方法,在实现泛型之后,应该将不同的模型作为参数。下面是我的界面如何在C#接口中实现泛型?,c#,generics,interface,C#,Generics,Interface,嗨,我正在尝试在C#接口中实现泛型。我有一种方法,在实现泛型之后,应该将不同的模型作为参数。下面是我的界面 public interface IKafkaProducer<T> { Task ProduceAsync(T kafkaEvent, string topicName); } 在上述代码中,私有只读卡夫卡布制作者卡夫卡布制作者;使用泛型类型IKafkaProducer时也会出现错误,需要一个参数。 有人能帮我解决这个问题吗?任何帮助都将不胜感激。谢谢更改
public interface IKafkaProducer<T>
{
Task ProduceAsync(T kafkaEvent, string topicName);
}
在上述代码中,私有只读卡夫卡布制作者卡夫卡布制作者;使用泛型类型IKafkaProducer时也会出现错误,需要一个参数。
有人能帮我解决这个问题吗?任何帮助都将不胜感激。谢谢更改此行:
private readonly IKafkaProducer kafkaProducer;
到
private只读卡夫卡制作人卡夫卡制作人;
如果希望泛型类型匹配,可能需要一个约束,其中T:ProductRangeEvent。否则,在使用泛型类型时,需要将代码更改为更通用的代码。至于其他错误,您必须指定泛型类型IKafkaProducer
Thank where T:ProductRangeEvent我应该在哪里添加?接口还是类?@Niranjan在bothI上添加,类实现中出现错误。但错误仍然存在于我的控制器类中。@Niranjan刷新页面。juharr编辑了他的评论以解决第二个错误谢谢如果我们需要在同一个类中发送多个类型,那么我们可以像这个IKafkaProducer一样制作吗
public class TestController
{
private readonly IKafkaProducer kafkaProducer;
public TestController(IKafkaProducer kafkaProducer)
{
this.kafkaProducer = kafkaProducer;
}
[HttpGet]
[Route("/api/test")]
public IActionResult Test()
{
ProductRangeEvent productRangeEvent = new ProductRangeEvent
{
id = "101"
};
var response = this.kafkaProducer.ProduceAsync(productRangeEvent, "users");
response.Wait();
var hi = response.IsCompletedSuccessfully;
return null;
}
}
private readonly IKafkaProducer kafkaProducer;
private readonly IKafkaProducer<ProductRangeEvent> kafkaProducer;