zoukankan      html  css  js  c++  java
  • netcore容器与配置文件操作

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.Json;
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Options;
    using System;
    
    namespace CoreConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                //DI容器测试
                var provider1 = new ServiceCollection()
                    .AddOptions()
                    .AddTransient<IPerson, Person>()
                    .AddTransient<IDog, Dog>()
                    .AddTransient<IFly, Fly>()
                    .BuildServiceProvider();
    
                var dog1 = provider1.GetService<IDog>();
                Console.WriteLine(provider1.GetService<IDog>().Name);
                Console.WriteLine(provider1.GetHashCode());
    
                var provider2 = new ServiceCollection()
                    .AddOptions()
                    .AddTransient<IPerson, Person>()
                    .AddTransient<IDog, Dog>()
                    .BuildServiceProvider();
                var dog2 = provider2.GetService<IDog>();
                Console.WriteLine(provider2.GetHashCode());
                
                //配置文件读取测试
                IConfiguration config = new ConfigurationBuilder()
                    .SetBasePath(AppContext.BaseDirectory)
                    .Add(new JsonConfigurationSource
                    {
                        Path = "appsettings.json",
                        Optional = false,
                        ReloadOnChange = true
                    }).Build();
                ConfigHelper.config = config;
    
                var user = ConfigHelper.GetConfig<Usernfo>("User");
                string url = ConfigHelper.GetValue("Url");
                Console.WriteLine($"网址:{url}");
                Console.WriteLine($"用户名:{user.Name},电话:{string.Join("|",user.Phones)}");
                Console.ReadKey();
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Text;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.Json;
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Options;
    
    namespace CoreConsoleApp1
    {
        public class ConfigHelper
        {
            public static IConfiguration config;
    
            public static string GetValue(string key)
            {
                return config.GetSection(key).Value;
            }
    
            public static T GetConfig<T>(string key) where T : class, new()
            {
                var data = new ServiceCollection()
                    .AddOptions()
                    .Configure<T>(config.GetSection(key))
                    .BuildServiceProvider()
                    .GetService<IOptions<T>>()
                    .Value;
                return data;
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace CoreConsoleApp1
    {
        public interface IPerson
        {
            string Name { get; set; }
        }
    
        public class Person : IPerson
        {
            public string Name { get; set; }
        }
    
    
        public interface IDog
        {
            string Name { get; set; }
        }
    
        public class Dog : IDog
        {
            private IFly _fly;
    
            public Dog()
            { }
    
            public Dog(IFly fly)
            {
                _fly = fly;
            }
    
            public Dog(string name)
            {
                this.Name = name;
            }
            public string Name { get; set; } = "huahua";
        }
    
    
        public interface IFly
        {
            string Fiy();
        }
    
        public class Fly : IFly
        {
            public string Fiy()
            {
                return "fly....";
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace CoreConsoleApp1
    {
        public class Usernfo
        {
            public string Name { get; set; }
            public string[] Phones { get; set; }
        }
    }
    appsettings.json
    
    {
      "Url": "http://www.test.com",
      "User": {
        "Name": "zhangsan",
        "Phones": [ "138002233", "12866525", "185226365" ]
      }
    }

     

  • 相关阅读:
    独木舟上的旅行
    会场安排问题
    喷水装置(二)
    喷水装置(一)
    款待奶牛
    整理书本
    贪心算法基本思想和典型例题(转)
    贪心算法
    太乱了,不要了
    Runtime Error:Floating point exception 不知道拿错了
  • 原文地址:https://www.cnblogs.com/huangzelin/p/10856528.html
Copyright © 2011-2022 走看看