ConfigurationManger的使用
- 环境
.net core 3.1 > .net core 3.1 控制台应用程序 - 先引入using System.Configuration;命名空间
NuGet > System.Configuration.ConfigurationManager 安装
app.config是图表配置文件
下面是一个“简单工厂模式”示例,关于图表库
Program.cs 入口文件
using System;
using System.Configuration;
/// <summary>
/// 简单工厂模式示例
/// 简单图表库工厂
/// </summary>
namespace SimpleChartFactory
{
class Program
{
/// <summary>
/// 入口
/// 客户端测试类
/// </summary>
/// <param name="args"></param>
static void Main(string[] args)
{
Chart chart;
#region 不符合开闭原则的代码
//chart = ChartFactory.GetChart("pie"); //通过静态工厂方法创建产品
#endregion
Console.WriteLine("-----------------------以下是开闭原则的代码---------------------------------");
#region 读取配置文件
string chartStr = ConfigurationManager.AppSettings["chartType"];
chart = ChartFactory.GetChart(chartStr);
#endregion
chart.Display();
Console.Read();
}
}
}
Chart.cs
namespace SimpleChartFactory
{
/// <summary>
/// 图表库
/// 抽象图表接口,充当产品抽象类
/// </summary>
interface Chart
{
void Display(); //显示图库
}
}
ChartFactory.cs
using System;
namespace SimpleChartFactory
{
/// <summary>
/// 图表工厂类
/// </summary>
class ChartFactory
{
//静态工厂方法
public static Chart GetChart(string type)
{
Chart chart = null;
if (type.Equals("histogram"))
{
chart = new HistogramChart();
Console.WriteLine("初始化设置柱状图!");
}
else if (type.Equals("pie"))
{
chart = new PieChart();
Console.WriteLine("初始化设置饼状图!");
}
else if (type.Equals("line"))
{
chart = new LineChart();
Console.WriteLine("初始化设置折线图!");
}
return chart;
}
}
}
HistogramChart.cs
using System;
namespace SimpleChartFactory
{
/// <summary>
/// 柱状图类
/// 充当具体产品类
/// </summary>
class HistogramChart : Chart
{
public HistogramChart()
{
Console.WriteLine("创建柱状图!");
}
public void Display()
{
Console.WriteLine("显示柱状图!");
}
}
}
LineChart.cs
using System;
namespace SimpleChartFactory
{
/// <summary>
/// 折线图类
/// 充当具体产品类
/// </summary>
class LineChart : Chart
{
public LineChart()
{
Console.WriteLine("创建折线图!");
}
public void Display()
{
Console.WriteLine("显示折线图!");
}
}
}
PieChart.cs
using System;
namespace SimpleChartFactory
{
/// <summary>
/// 饼状图
/// 充当具体产品类
/// </summary>
class PieChart : Chart
{
public PieChart()
{
Console.WriteLine("创建饼状图!");
}
public void Display()
{
Console.WriteLine("显示饼状图!");
}
}
}