序言

在当前编程语言蓬勃发展与竞争的时期,对于我们.net从业者来说,.Net Core是风头正紧,势不可挡的.芸芸口水之中,不学习使用Core,你的圈内处境或许会渐渐的被边缘化.所以我们还是抽出一点点时间学学.net core吧.

那VS Code 可以编写,也可以调试Core本人也尝试啦下,但是感觉扯淡的有点多,还是使用宇宙第一开发工具VS2017吧.

由于本篇是core的开篇,所以就稍微啰嗦一点,从创建web项目开始,先说项目文件,再来说一说配置文件与IOC使用.

创建web项目及项目文件简介

关于web项目的创建,如果你创建不出来,自生自灭吧.点击右上角的x,拜拜.

从上往下说这个目录结构

1、launchSettings.json 启动配置文件,文件默认内容如下.

{  "iisSettings": {      //使用IIS Express启动"windowsAuthentication": false,  //是否启用windows身份验证  "anonymousAuthentication": true,  //是否启用匿名身份验证"iisExpress": {      "applicationUrl": "http://localhost:57566/",   //访问域名,端口"sslPort": 0}},  "profiles": {    "IIS Express": {      "commandName": "IISExpress",      "launchBrowser": true,      "environmentVariables": {        "ASPNETCORE_ENVIRONMENT": "Production"  //环境变量,默认为开发环境(Development),预发布环境(Staging),生产环境(Production)      }},    "WebApplication1": {          //选择本地自宿主启动,详见Program.cs文件。删除该节点也将导致Visual Studio启动选项缺失"commandName": "Project",      "launchBrowser": true,      "environmentVariables": {        "ASPNETCORE_ENVIRONMENT": "Development"},      "applicationUrl": "http://localhost:57567"    //本地自宿主端口    }}
}

在vs的设计视图中也可以编辑,如下图,自己扣索下.

2、wwwroot和bower.json 静态资源文件夹与引入静态资源库包版本配置文件,自己打开看下

3、依赖项,这个里面有4种吧,一种是bower前端资源库,Nuget第三方,SDK,项目本身

4、Controllers,Views,这个不用介绍吧,mvc的2主.

5、appsettings.json :应用配置文件,类似于.net framework中的web.config文件

6、bundleconfig.json:打包压缩配置文件

7、Program.cs:里面包含一个静态Main文件,为程序运行的入口点

8、Startup.cs:这个默认为程序启动的默认类.

这里的配置文件与2个入口类文件是万物的根基,灵活多变,其中用我们值得学习了解的东西很多,这一章我不做阐述,后续章节再来补习功课,见谅,谨记.

.Net Core读取配置文件

这个是我第一次入手学习core时候的疑问,我先是按照.Net Framework的方法来读取配置文件,发现Core中根本没有System.Configuration.dll.那怎么读取配置文件呢?

那么如果要读取配置文件中的数据,首先要加载Microsoft.Extensions.Configuration这个类库.

首先看下我的默认配置文件,appsettings.json

{  "Logging": {    "IncludeScopes": false,    "LogLevel": {      "Default": "Warning"}}
}

读取他的第一种方式

        /// <summary>/// 获取配置节点对象        /// </summary>   public static T GetSetting<T>(string key, string fileName = "appsettings.json") where T : class, new(){IConfiguration config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).Add(new JsonConfigurationSource { Path = fileName, Optional = false, ReloadOnChange = true }).Build();            var appconfig = new ServiceCollection().AddOptions().Configure<T>(config.GetSection(key)).BuildServiceProvider().GetService<IOptions<T>>().Value;            return appconfig;}
    public class Logging{        public bool IncludeScopes { get; set; }        public LogLevel LogLevel { get; set; }}    public class LogLevel{        public String Default { get; set; }}
var result =GetSetting<Logging>("Logging");

这样即可,读取到配置文件的内容,并填充配置文件对应的对象Logging.

如果你有自定义的节点,如下

{  "Logging": {    "IncludeScopes": false,    "LogLevel": {      "Default": "Warning"}},  "Cad": {    "a": false,    "b": "18512312"    }
}

与上面一样,首先定义对应的对象

    public class Cad{            public bool a { get; set; }        public string b { get; set; }}
var result = GetSetting<Cad>("Cad");

有啦上面的方法很是简单,还有一种情况是你想有自己的配置文件myconfig.json,那也很简单,把上述方法的默认文件名改为myconfig.json即可!

除啦这个方法可以获取配置文件外,core在mvc中还有另外获取配置文件的方法,如下.

        IOptions<Cad> cadConfig;              public HomeController(IOptions<Cad> config){cadConfig = config;}      

        public IActionResult Index(){                    try{                var result = cadConfig.Value;                return View(result);}            catch (Exception ex){                return View(ex);}}

就这样,用法也很简单.

但是如果配置文件中有的配置项需要你动态修改,怎么办呢,用下面的方法试试.

        /// <summary>/// 设置并获取配置节点对象        /// </summary>  public static T SetConfig<T>(string key, Action<T> action, string fileName = "appsettings.json") where T : class, new(){IConfiguration config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile(fileName, optional: true, reloadOnChange: true).Build();            var appconfig = new ServiceCollection().AddOptions().Configure<T>(config.GetSection(key)).Configure<T>(action).BuildServiceProvider().GetService<IOptions<T>>().Value;                  return appconfig;}
  var c =SetConfig<Cad>("Cad", (p => p.b = "123"));

ok啦,自己试试吧,对配置文件的读取,我这里目前只做到这里,后续有新的好方法再来分享.

.Net Core中运用IOC

当然在.net framework下能够做依赖注入的第三方类库很多,我们对此也了然于心,但是在core中无须引入第三放类库即可做到.

    public interface IAmount{         string GetMyBanlance();         string GetMyAccountNo();}  

   public class AmountImp: IAmount{             public string GetMyBanlance(){            return "88.88";}        public string GetMyAccountNo(){            return "CN0000000001";}}

上面一个接口,一个实现,下面我们在Startup的ConfigureServices中把接口的具体实现注册到ioc容器中.

 public class Startup{       // This method gets called by the runtime. Use this method to add services to the container.public void ConfigureServices(IServiceCollection services){services.AddScoped<IAmount, AmountImp>();            // Add framework services.            services.AddMvc();}}
    public class HomeController : Controller{IAmount amount;              public HomeController(IAmount _amount){amount = _amount;}              public IActionResult Index(){                   try{          var result = amount.GetMyAccountNo(); //结果为: "CN0000000001"return View();}            catch (Exception ex){                return View(ex);}}    }

这里呢,我只做一个简单的示例,以供我们熟悉了解core,后续章节,如果运用的到会深入.

总结

入手.net core还是需要有很多新的认识点学习的,不是一两篇博文可以涵盖的,我们自己需要多总结思考学习.

这里我把一些的点,贴出来,希望对想入手core的同学有所帮助.如有志同道合者,欢迎加左上方群,一起学习进步.

原文地址:http://www.cnblogs.com/knowledgesea/p/7079880.html

.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

来吧学学.Net Core之项目文件简介及配置文件与IOC的使用相关推荐

  1. ASP.NET Core Web 项目文件介绍

    ASP.NET Core Web 项目文件 在本视频中,我们将探索并了解asp.net core项目文件. 我们使用C#作为编程语言,因此项目文件具有.csproj扩展名. 如果您使用过以前版本的AS ...

  2. ASP.NET Core实现类库项目读取配置文件

    前言 之前继续在学习多线程方面的知识,忽然这两天看到博问中有个园友问到如何在.net core类库中读取配置文件,当时一下蒙了,这个提的多好,我居然不知道,于是这两天了解了相关内容才有此篇博客的出现, ...

  3. .NET平台开源项目速览(20)Newlife.Core中简单灵活的配置文件

    如果用知乎,可以关注专栏:.NET开源项目 记得5年前开始拼命翻读X组件的源码,特别是XCode,但对Newlife.Core 的东西了解很少,最多只是会用用,而且用到的只是九牛一毛.里面好用的东西太 ...

  4. [开源]OSharpNS - .net core 快速开发框架 - 简介

    OSharpNS全称OSharp Framework with .NetStandard2.0,是一个基于.NetStandard2.0开发的一个.NetCore快速开发框架.这个框架使用最新稳定版的 ...

  5. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  6. ASP.NET MVC应用迁移到ASP.NET Core及其异同简介

    ASP.NET Core是微软新推出支持跨平台.高性能.开源的开发框架,相比起原有的ASP.NET来说,ASP.NET Core更适合开发现代应用程序,如跨平台.Dorker的支持.集成现代前端开发框 ...

  7. 用.NET Core实现装饰模式和.NET Core的Stream简介

    该文章综合了几本书的内容. 某咖啡店项目的解决方案 某咖啡店供应咖啡, 客户买咖啡的时候可以添加若干调味料, 最后要求算出总价钱. Beverage是所有咖啡饮料的抽象类, 里面的cost方法是抽象的 ...

  8. 来吧学学.Net Core之登录认证与跨域资源使用

    序言 学习core登录认证与跨域资源共享是越不过的砍,所以我在学习中同样也遇到啦这两个问题,今天我们就用示例来演示下使用下这2个技术点吧. 本篇主要内容如下: 1.展示一个登录认证的简单示例 2.跨域 ...

  9. 核心动画(Core Animation)简介及常规用法

    Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍,使用它需要先添加QuartzCore.framework和引入对应的框架<Quar ...

最新文章

  1. 【POCO】POCO学习总结(三)——交叉编译
  2. 在抖音推荐算法组工作的体验
  3. 第11章 假如没有编程 《丰富多彩的编程世界》
  4. 线性时间冰山查询算法(Linear-time Iceberg Query Algorithm )
  5. 网络:长连接、短连接
  6. 【Python】实战多word的内容合并筛选及输出
  7. 华为海思MPP媒体处理软件开发学习(基础)
  8. ASP.NET 连接MySql数据库
  9. 查看 linux 硬件信息:内存、分区、系统、环境变量、防火墙、路由、端口监听、进程、CPU...
  10. java manager 如何使用_java - Android:如何使用AlarmManager
  11. SpringMVC(六) RequestMapping 路径中ant风格的通配符
  12. ubuntu查看默认python版本_更改Ubuntu默认python版本的两种方法python- Anaconda
  13. Spring的注入方式中,官方推荐哪种方式
  14. mysql使用sql脚本建立数据库
  15. 使用windows Builder的一个中文乱码问题解决
  16. Unity:发布WebGL遇到的坑
  17. java解压7z格式的压缩包
  18. 拉卡拉遭联想控股减持:套现3亿 总经理陈烈辞职
  19. 如何使用计算机做海报,用word做的海报步骤_word怎么设计海报
  20. WuThreat身份安全云-TVD每日漏洞情报-2023-01-31

热门文章

  1. 二维数组foreach嵌套遍历,判断连续3天以上的算有效数据
  2. LVS负载均衡-NET、DR模式配置
  3. struts2 kindeditor teatarea拿不到值问题。
  4. YARP(Yet Another Reverse Proxy)是使用 .NET 构建的高度可定制的反向代理
  5. Magicodes.IE 2.5.6.1发布
  6. Windows 11 预览版 Build 22000.168 发布
  7. 听说过Netflix的Chaos Monkey吗?不用羡慕,我们.NET也有
  8. .Net5 WPF快速入门系列教程
  9. 笑说设计模式-小白逃课被点名
  10. ASP.NET Core中间件初始化探究