整合了一个命令行程序的框架

背景

最近工作中写了N多个命令行程序跑数据.每新建一个项目就要引用各种包,各种配置.所以有了这个整合包.其实不能算是框架吧,没写什么代码,几乎就是引用一些包.

代码

GitHub: https://github.com/lun3322/Luna.Service

NuGet1: Install-Package Luna.Service

NuGet2: Install-Package Luna.Service.Nlog

  1. Luna.Service 代码几乎都在这个包里.Starter在程序启动的时候加载.主要功能是扫描程序集注册相关类型进IOC
  2. Luna.Service.Nlog 这里包含了我常用的nlog配置,和一个启动器

关于使用

  1. 如果你也使用nlog写日志的话可以直接引用 Luna.Service.Nlog 包.关于日志的一个配置会自动加载到项目中
  2. 设置NLog.config文件编译时复制到输出目录
  3. 在Main方法中新增代码
    ```
    using (var starter = Starter.Create())
    {
    starter.Container.AddFacility(f => f.LogUsing().WithConfig("NLog.config"));

     starter.Run();
    }
    ```
  4. 增加你的service像下面这样
    ```
    public interface IDemoService : ILunaService
    {
    string GetMessage();
    }

    public class DemoService : LunaServiceBase, IDemoService
    {
    public string GetMessage()
    {
    Logger.Info("GetMessage");
    return "测试";
    }
    }
    ```
    注意接口实现ILunaService才能被自动注册进IOC
  5. 修改Runner类的run方法
    ```
    public class Runner : LunaRunnerBase
    {
    private readonly IDemoService _demoService;

     public Runner(IDemoService demoService)
     {
         _demoService = demoService;
     }
    
     public override void Run()
     {
         var message = _demoService.GetMessage();
         Logger.Info(message);
         Logger.Info("ok");
     }

    }
    ```

如果不喜欢用nlog的话,可以查看Castle.Windsor文档修改第3步中AddFacility方法

项目约定: 你的程序命名必须遵循aaa.bb.c的方式

Demo.App <- 应用程序入口

Demo.Service <- 服务层

Demo.Entity <- 实体层

转载于:https://www.cnblogs.com/huaface/p/8567904.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值