Skip to content

Instantly share code, notes, and snippets.

@arockusa
arockusa / Startup.cs
Last active August 20, 2019 04:11
IoC與DI範例 - 換成另一個實作 #IoC #DI
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//一般員工薪資計算
//services.AddTransient<HR.ISalaryFormula, HR.SalaryFormula>();
//換一個公式(替換成請假不扣薪公式)
services.AddTransient<HR.ISalaryFormula, HR.BossSalaryFormula>();
}
@arockusa
arockusa / Startup.cs
Last active August 20, 2019 04:11
IoC與DI範例 - 使用DI服務 #IoC #DI
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//一般員工薪資計算
services.AddTransient<HR.ISalaryFormula, HR.SalaryFormula>();
//替換成請假不扣薪公式
//services.AddTransient<HR.ISalaryFormula, HR.BossSalaryFormula>();
}
@arockusa
arockusa / SalaryCalculator.cshtml.cs
Created August 20, 2019 03:50
IoC與DI範例 - Razor PageModel
public class SalaryCalculatorModel : PageModel
{
private HR.ISalaryFormula _SalaryFormula;
public SalaryCalculatorModel(HR.ISalaryFormula SalaryFormula)
{
_SalaryFormula = SalaryFormula;
}
public float Salary { get; set; }
public ActionResult OnGet()
@arockusa
arockusa / Program.cs
Last active August 20, 2019 03:07
IoC與DI範例 - 新增了老闆薪資計算類別,與主程式 #IoC #DI
class Program
{
static void Main(string[] args)
{
//一般員工 SalaryFormula
SalaryCalculator SC = new SalaryCalculator(new SalaryFormula());
//注意參數完全相同
float amount = SC.Calculate(8 * 19, 200, 8);
Console.Write("\nSalaryFormula--->amount:" + amount);
@arockusa
arockusa / SalaryCalculator.cs
Last active August 19, 2019 15:55
IoC與DI範例 - 修改後的類別設計 #IoC #DI
namespace ConsoleApp2
{
/// <summary>
/// 計算薪資的類別
/// </summary>
class SalaryCalculator
{
/// <summary>
/// 計算薪資的公式物件
/// </summary>
@arockusa
arockusa / Program.cs
Last active August 19, 2019 15:54
IoC與DI範例 - 原始主程式 #IoC #DI
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
//使用薪資計算器 SalaryCalculator,引用基本公式 SalaryFormula
SalaryCalculator SC = new SalaryCalculator(new SalaryFormula());
//工時 , 時薪, 請假天數
float amount = SC.Calculate(8 * 19, 200, 8);
@arockusa
arockusa / SalaryCalculator.cs
Last active August 19, 2019 15:54
IoC與DI範例 - 原始類別設計 #IoC #DI
namespace ConsoleApp1
{
/// <summary>
/// 計算薪資的類別
/// </summary>
class SalaryCalculator
{
/// <summary>
/// 計算薪資的公式物件
/// </summary>
@arockusa
arockusa / test.cs
Created August 11, 2019 04:10
test1
void fun
{
//使用薪資計算器 SalaryCalculator,引用基本公式 SalaryFormula
SalaryCalculator SC = new SalaryCalculator(new SalaryFormula());
//工時 , 時薪, 請假天數
float amount = SC.Calculate(8 * 19, 200, 8);
Console.Write("amount:" + amount);
Console.ReadKey();
}