Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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# 如何创建通用输入转换输出系统_C#_.net Core - Fatal编程技术网

C# 如何创建通用输入转换输出系统

C# 如何创建通用输入转换输出系统,c#,.net-core,C#,.net Core,我想使用依赖项注入创建一个.NET核心代理后台服务。此代理创建接受输入的侦听器,将此输入映射到另一个对象,并将该映射对象发送到另一个服务 我必须实现多个用例(最后一个是虚构的) 侦听TCP套接字消息,对其进行转换,并将转换后的数据发送到REST API 侦听HTTP请求,对其进行转换,并将转换后的数据发送到TCP服务器,然后返回HTTP响应状态代码 每3秒生成一个随机整数,将其转换为字符串并将该字符串写入文件 所以我只是想创建一个接口,它能够接收通用值,处理它们并返回通用响应 interf

我想使用依赖项注入创建一个.NET核心代理后台服务。此代理创建接受输入的侦听器,将此输入映射到另一个对象,并将该映射对象发送到另一个服务

我必须实现多个用例(最后一个是虚构的)

  • 侦听TCP套接字消息,对其进行转换,并将转换后的数据发送到REST API
  • 侦听HTTP请求,对其进行转换,并将转换后的数据发送到TCP服务器,然后返回HTTP响应状态代码
  • 每3秒生成一个随机整数,将其转换为字符串并将该字符串写入文件
所以我只是想创建一个接口,它能够接收通用值,处理它们并返回通用响应

interface IValueProcessor<in TInput, TOutput>
{
    public Task<TOutput> ProcessValue(TInput input);
}
处理器接口 { 公共任务进程值(TInput输入); } 但我正面临着多重问题:

  • 在哪里定义流程链
  • IValueProcessor
    如何了解下一个要调用的
    IValueProcessor
    ?而且可能没有下一个实例可调用(流程的最后一步)
  • 如果出现故障(异常、连接超时等),
    TOutput
    似乎更复杂,包含结果和“ResultStatus”(HTTP状态代码、异常等)
也许会出现更多我没有想到的问题。有什么想法吗?也许有什么东西已经解决了这些问题


我不确定是否有帮助。

看起来您正在重新发明一种“中间件”方法。只需检查HttpClient处理程序是如何实现的或ASP.NET中间件——类似的方法看起来就像是在重新发明一种“中间件”方法。只需检查如何实现HttpClient处理程序或ASP.NET中间件-类似的方法