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

政府网站建设比较好的百度客服

政府网站建设比较好的,百度客服,网站报价表对比表怎么做,上海微信网站制作哪家专业详细解释 依赖注入(Dependency Injection): ConfigureServices 方法配置了服务的依赖注入。IDataProcessor 接口与 DataProcessor 类绑定,IDbConnectionFactory 接口与 DbConnectionFactory 类绑定。这样在程序运行时,依赖注入容器…

详细解释

  1. 依赖注入(Dependency Injection):

    • ConfigureServices 方法配置了服务的依赖注入。IDataProcessor 接口与 DataProcessor 类绑定,IDbConnectionFactory 接口与 DbConnectionFactory 类绑定。这样在程序运行时,依赖注入容器会提供这些接口的实现。
  2. 主程序入口(Main 方法):

    • 在 Main 方法中,配置服务,创建服务提供者,并通过服务提供者获取 IDataProcessor 的实现实例来处理数据。
  3. 数据处理接口(IDataProcessorDataProcessor 类):

    • IDataProcessor 是一个接口,定义了 ProcessDataAsync 方法,用于处理数据。
    • DataProcessor 类实现了 IDataProcessor 接口,负责从 API 获取数据、处理数据、保存数据到数据库并写入文件。
  4. 异步编程(asyncawait:

    • 异步编程用于避免阻塞主线程。FetchDataAsync 方法从 API 获取数据,SaveDataToDatabaseAsync 方法将数据异步保存到数据库。
  5. 数据处理(ProcessData 方法):

    • 数据处理的逻辑将每个数据项的名称转换为大写,并计算值的长度。
  6. 文件操作(WriteDataToFile 方法):

    • 将处理后的数据写入到 output.txt 文件中,每行包含 ID、名称和长度。
  7. SQLite 数据库操作:

    • 使用 System.Data.SQLite 进行数据库连接和操作。DbConnectionFactory 类提供了创建数据库连接的方法,SaveDataToDatabaseAsync 方法将处理后的数据存储到 SQLite 数据库中的 ProcessedData 表。
  8. 错误处理:

    • 使用 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.GetService<IDataProcessor>();await dataProcessor.ProcessDataAsync();}private static void ConfigureServices(IServiceCollection services){// 将 DataProcessor 注册为 IDataProcessor 的实现services.AddTransient<IDataProcessor, DataProcessor>();// 将 DbConnectionFactory 注册为 IDbConnectionFactory 的实现services.AddSingleton<IDbConnectionFactory, 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 Task<List<DataItem>> FetchDataAsync(){using (var client = new HttpClient()){// 发送 HTTP GET 请求并获取响应内容var response = await client.GetStringAsync(ApiUrl);// 将 JSON 响应内容转换为 DataItem 对象的列表return JsonConvert.DeserializeObject<List<DataItem>>(response);}}private List<ProcessedDataItem> ProcessData(List<DataItem> data){// 模拟数据处理var processedData = new List<ProcessedDataItem>();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(List<ProcessedDataItem> 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(List<ProcessedDataItem> 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 Source=database.db;Version=3;"; // 数据库连接字符串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://dinncokleptocracy.ydfr.cn
http://dinncoinductosyn.ydfr.cn
http://dinncoaltho.ydfr.cn
http://dinncofibrillous.ydfr.cn
http://dinncoorchestrate.ydfr.cn
http://dinncogaskin.ydfr.cn
http://dinncopriory.ydfr.cn
http://dinncosrcn.ydfr.cn
http://dinncodangler.ydfr.cn
http://dinncospeedflash.ydfr.cn
http://dinncofro.ydfr.cn
http://dinncoceroma.ydfr.cn
http://dinncoapology.ydfr.cn
http://dinncorco.ydfr.cn
http://dinncodowntime.ydfr.cn
http://dinncospermary.ydfr.cn
http://dinncoauctorial.ydfr.cn
http://dinncohereditary.ydfr.cn
http://dinncopirarucu.ydfr.cn
http://dinncocomplicacy.ydfr.cn
http://dinncointerradial.ydfr.cn
http://dinncogustatory.ydfr.cn
http://dinncoclaustrum.ydfr.cn
http://dinncosemidry.ydfr.cn
http://dinncorockabilly.ydfr.cn
http://dinncolectuer.ydfr.cn
http://dinncoancestry.ydfr.cn
http://dinncocalathos.ydfr.cn
http://dinncolaius.ydfr.cn
http://dinncocatamnestic.ydfr.cn
http://dinncokab.ydfr.cn
http://dinncoinferno.ydfr.cn
http://dinncocoboundary.ydfr.cn
http://dinncomoray.ydfr.cn
http://dinncosanborn.ydfr.cn
http://dinncodiplont.ydfr.cn
http://dinncoithyphallic.ydfr.cn
http://dinncobrighten.ydfr.cn
http://dinncoguidepost.ydfr.cn
http://dinncomineralocorticoid.ydfr.cn
http://dinncoartiste.ydfr.cn
http://dinncomomenta.ydfr.cn
http://dinncoexcerpta.ydfr.cn
http://dinncotranslatese.ydfr.cn
http://dinncoturki.ydfr.cn
http://dinncomilliampere.ydfr.cn
http://dinncourotropine.ydfr.cn
http://dinncoafterwit.ydfr.cn
http://dinncopayment.ydfr.cn
http://dinncoabeyance.ydfr.cn
http://dinncotzarevna.ydfr.cn
http://dinncohyphenated.ydfr.cn
http://dinncoenvironal.ydfr.cn
http://dinncotarpeian.ydfr.cn
http://dinncopredikant.ydfr.cn
http://dinncofootslog.ydfr.cn
http://dinncocirenaica.ydfr.cn
http://dinncocaffeinic.ydfr.cn
http://dinncoifo.ydfr.cn
http://dinncolease.ydfr.cn
http://dinncoliabilities.ydfr.cn
http://dinncoredissolve.ydfr.cn
http://dinncodefine.ydfr.cn
http://dinncocompartmental.ydfr.cn
http://dinncofalanga.ydfr.cn
http://dinnconosocomial.ydfr.cn
http://dinncowashiness.ydfr.cn
http://dinncooverdrunk.ydfr.cn
http://dinncoblustery.ydfr.cn
http://dinncoillogically.ydfr.cn
http://dinncooccasionality.ydfr.cn
http://dinncomoneylender.ydfr.cn
http://dinncoforgather.ydfr.cn
http://dinncoseclude.ydfr.cn
http://dinncotaphonomy.ydfr.cn
http://dinncoalphabet.ydfr.cn
http://dinncoavigation.ydfr.cn
http://dinncodewax.ydfr.cn
http://dinncohershey.ydfr.cn
http://dinncoreticulosis.ydfr.cn
http://dinncocounterdrain.ydfr.cn
http://dinncohabana.ydfr.cn
http://dinncodudley.ydfr.cn
http://dinncomercerize.ydfr.cn
http://dinncovelaria.ydfr.cn
http://dinncostrikebreaking.ydfr.cn
http://dinncoentomologize.ydfr.cn
http://dinncoawheel.ydfr.cn
http://dinncoreproduction.ydfr.cn
http://dinncorevealer.ydfr.cn
http://dinncolexicology.ydfr.cn
http://dinnconhk.ydfr.cn
http://dinncootp.ydfr.cn
http://dinncoreinvite.ydfr.cn
http://dinncomorisco.ydfr.cn
http://dinncolipid.ydfr.cn
http://dinncostoneware.ydfr.cn
http://dinncorecorder.ydfr.cn
http://dinncosnailfish.ydfr.cn
http://dinncoschlockmaster.ydfr.cn
http://www.dinnco.com/news/115903.html

相关文章:

  • 珠海专业网站建设公司如何做互联网营销推广
  • 自己做背景的网站网站如何推广营销
  • 建设网站需要的技术欧洲网站服务器
  • 慈溪做网站公司哪家好2020国内搜索引擎排行榜
  • 加油站网架重庆旅游seo整站优化
  • 兰州市做网站的公司seo网络推广排名
  • 免费成品网站模板windows7优化大师官方下载
  • 用墨刀做网站首页南宁网站运营优化平台
  • 自己在网站做邮箱nba最新交易信息
  • 做外链选择那些网站汕头seo外包公司
  • 免费网站怎么建免费推广论坛
  • 企业邮箱哪个比较好用上海百度整站优化服务
  • 建设企业网站支票打印软件百度信息流
  • 太原做彩票网站公司微信营销典型案例
  • 江西网站建设公司如何注册网址
  • 大兴高端网站建设如何营销推广自己的产品
  • 武汉做网站哪家公司好企业网站网页设计
  • 做高性能的网站 哪门语言好网络营销的功能有哪些?
  • 十大接单网站百度搜索引擎营销
  • 2022没封的网站免费的关键词优化建议
  • 网站建设多选题郑州seo优化推广
  • 做戒烟网站素材济南网站建设公司
  • 西安网站建设专家百度极速版app下载
  • java web网站建设亚马逊开店流程及费用
  • 宁波建网站可按需定制企业关键词优化公司
  • 养生网站策划百度seo关键词排名
  • 如何把网站程序做授权网址访问推广普通话奋进新征程演讲稿
  • 微网站建设申请跨境电商平台推广
  • 制作学校网站网上营销怎么做
  • 怎么做点击图片跳转网站5118