当前位置: 首页 > news >正文

网站备案 前置审批号建设纺织原料网站

网站备案 前置审批号,建设纺织原料网站,图片设计制作哪个软件好手机,游戏软件开发流程详细解释 依赖注入#xff08;Dependency Injection#xff09;: ConfigureServices 方法配置了服务的依赖注入。IDataProcessor 接口与 DataProcessor 类绑定#xff0c;IDbConnectionFactory 接口与 DbConnectionFactory 类绑定。这样在程序运行时#xff0c;依赖注入容器…详细解释 依赖注入Dependency Injection: ConfigureServices 方法配置了服务的依赖注入。IDataProcessor 接口与 DataProcessor 类绑定IDbConnectionFactory 接口与 DbConnectionFactory 类绑定。这样在程序运行时依赖注入容器会提供这些接口的实现。 主程序入口Main 方法: 在 Main 方法中配置服务创建服务提供者并通过服务提供者获取 IDataProcessor 的实现实例来处理数据。 数据处理接口IDataProcessor 和 DataProcessor 类: IDataProcessor 是一个接口定义了 ProcessDataAsync 方法用于处理数据。DataProcessor 类实现了 IDataProcessor 接口负责从 API 获取数据、处理数据、保存数据到数据库并写入文件。 异步编程async 和 await: 异步编程用于避免阻塞主线程。FetchDataAsync 方法从 API 获取数据SaveDataToDatabaseAsync 方法将数据异步保存到数据库。 数据处理ProcessData 方法: 数据处理的逻辑将每个数据项的名称转换为大写并计算值的长度。 文件操作WriteDataToFile 方法: 将处理后的数据写入到 output.txt 文件中每行包含 ID、名称和长度。 SQLite 数据库操作: 使用 System.Data.SQLite 进行数据库连接和操作。DbConnectionFactory 类提供了创建数据库连接的方法SaveDataToDatabaseAsync 方法将处理后的数据存储到 SQLite 数据库中的 ProcessedData 表。 错误处理: 使用 try-catch 块来捕捉并处理可能的异常并输出错误信息。 using Microsoft.Extensions.DependencyInjection; // 引入依赖注入的命名空间 using Newtonsoft.Json; // 引入 JSON 处理的命名空间 using System; // 引入基本的系统功能 using System.Collections.Generic; // 引入泛型集合功能 using System.Data.SQLite; // 引入 SQLite 数据库操作的命名空间 using System.IO; // 引入文件操作的命名空间 using System.Net.Http; // 引入 HTTP 网络请求的命名空间 using System.Threading.Tasks; // 引入异步编程的命名空间namespace ComplexConsoleApp {class Program{static async Task Main(string[] args){// 配置服务var services new ServiceCollection();ConfigureServices(services);var serviceProvider services.BuildServiceProvider();// 获取 IDataProcessor 实现类的实例并处理数据var dataProcessor serviceProvider.GetServiceIDataProcessor();await dataProcessor.ProcessDataAsync();}private static void ConfigureServices(IServiceCollection services){// 将 DataProcessor 注册为 IDataProcessor 的实现services.AddTransientIDataProcessor, DataProcessor();// 将 DbConnectionFactory 注册为 IDbConnectionFactory 的实现services.AddSingletonIDbConnectionFactory, DbConnectionFactory();}}// 数据处理接口public interface IDataProcessor{Task ProcessDataAsync(); // 异步处理数据}public class DataProcessor : IDataProcessor{private readonly IDbConnectionFactory _dbConnectionFactory;private const string ApiUrl https://api.example.com/data; // API 数据的 URLpublic DataProcessor(IDbConnectionFactory dbConnectionFactory){_dbConnectionFactory dbConnectionFactory;}public async Task ProcessDataAsync(){try{// 获取数据var data await FetchDataAsync();// 处理数据var processedData ProcessData(data);// 将数据保存到数据库await SaveDataToDatabaseAsync(processedData);// 将数据写入文件WriteDataToFile(processedData);}catch (Exception ex){// 捕捉并输出异常信息Console.WriteLine($发生错误: {ex.Message});}}private async TaskListDataItem FetchDataAsync(){using (var client new HttpClient()){// 发送 HTTP GET 请求并获取响应内容var response await client.GetStringAsync(ApiUrl);// 将 JSON 响应内容转换为 DataItem 对象的列表return JsonConvert.DeserializeObjectListDataItem(response);}}private ListProcessedDataItem ProcessData(ListDataItem data){// 模拟数据处理var processedData new ListProcessedDataItem();foreach (var item in data){// 将每个数据项的名称转换为大写并计算值的长度processedData.Add(new ProcessedDataItem{Id item.Id,Name item.Name.ToUpper(),Value item.Value.Length});}return processedData;}private async Task SaveDataToDatabaseAsync(ListProcessedDataItem data){using (var connection _dbConnectionFactory.CreateConnection()){await connection.OpenAsync(); // 打开数据库连接var transaction connection.BeginTransaction(); // 开始事务foreach (var item in data){// 创建 SQL 命令var command connection.CreateCommand();command.Transaction transaction;command.CommandText INSERT INTO ProcessedData (Id, Name, Value) VALUES (Id, Name, Value);command.Parameters.AddWithValue(Id, item.Id);command.Parameters.AddWithValue(Name, item.Name);command.Parameters.AddWithValue(Value, item.Value);await command.ExecuteNonQueryAsync(); // 执行 SQL 命令}transaction.Commit(); // 提交事务}}private void WriteDataToFile(ListProcessedDataItem data){using (var writer new StreamWriter(output.txt)){foreach (var item in data){// 将处理后的数据写入文件writer.WriteLine(${item.Id}, {item.Name}, {item.Value});}}}}// 数据库连接工厂接口public interface IDbConnectionFactory{SQLiteConnection CreateConnection(); // 创建 SQLite 连接}public class DbConnectionFactory : IDbConnectionFactory{private const string ConnectionString Data Sourcedatabase.db;Version3;; // 数据库连接字符串public SQLiteConnection CreateConnection(){return new SQLiteConnection(ConnectionString); // 创建并返回 SQLite 连接}}// 从 API 获取的原始数据项public class DataItem{public int Id { get; set; } // 数据项的 IDpublic string Name { get; set; } // 数据项的名称public string Value { get; set; } // 数据项的值}// 处理后的数据项public class ProcessedDataItem{public int Id { get; set; } // 数据项的 IDpublic string Name { get; set; } // 数据项的名称转换为大写public int Value { get; set; } // 数据项的值的长度} }
http://www.hkea.cn/news/14301507/

相关文章:

  • 分类信息的网站如何推广教育类网站 前置审批
  • 深圳西乡 网站建设荔浦火车站建设在哪里
  • 怎么让自己的网站通过域名访问不了罗湖网站-建设深圳信科
  • 网站建设不完整(网站内容太少)营销网络的建设怎么写
  • 网站怎么添加背景帮别人做违法网站会判刑吗
  • 网站制作器软件下载在线制图网
  • 哪个网站可以接针织衫做单饿了么如何做网站推广
  • 个人网站建设方案书 备案南宁市做公司网站
  • 搭建网站php源码沃尔玛超市网上购物app下载
  • 网站建设优化服务多少钱开发小程序定制公司
  • 个人主题网站设计wordpress喜欢 赏 分享
  • 自贡市住房和城乡建设局网站网络营销方案的制定思路
  • 做网站怎么改关键词热点新闻素材
  • 网站seo诊断评分63临西做网站多少钱
  • 网站默认极速模式冶金建设网站
  • 中卫网站设计公司深圳品牌网站制作咨询电话
  • 站长之家网站查询安徽省建设厅网站张天培
  • 服装公司网站建设需求分析报告怎么推广网址
  • 国内最大的自建站平台静态旅游网站
  • 双流区的规划建设局网站如何利用源代码做网站
  • 做手机网站用什么软件大连旅顺旅游攻略
  • php建设网站用什么软件怎样做微商网站
  • 开发网站需要什么技术2022新网域名自助管理平台
  • 长春建设集团招聘信息网站360建筑网如何删除自己的信息
  • 免费公司注册网站吗青岛建设局网站首页
  • 专门做任务的网站6长沙网站制作收费明细表
  • 罗湖网站建设 信科网络用wordpress建立学校网站
  • 那种网站建设软件最好深圳企业网站建设收费标准
  • 网站开发语言版本不同免费公益云主机
  • app开发与网站开发济南建站培训