Skip to content

快速开始

下载与配置

从Git仓库拉取项目:JingJian.Host.General,和任意一个功能包。增加config.txt文件,并填入要装载的功能包地址(即功能包编译后的bin目录内的文件)

启动调试

设置JingJian.Host.General为启动目录,运行F5进行调试即可。

业务功能包

元包引用

鲸舰业务功能包,需要引用比较多零散的包,包含但不限于:

  • JingJian.AspNetCore
  • JingJian.Core
  • JingJian.Extensions.Authentication.Abstractions
  • JingJian.Extensions.Authentication.Jwt
  • JingJian.Extensions.Cache.Abstractions
  • JingJian.Extensions.Cache.Memory
  • JingJian.Extensions.Logger
  • JingJian.Extensions.Module
  • JingJian.Extensions.Repository.Abstractions
  • JingJian.Extensions.Repository.EntityFramework
  • JingJian.Extensions.Sms.Abstractions
  • JingJian.Extensions.Sms.Bdszh
  • SwashBuckle.AspNetCore
  • ......

现将所有引用包打包成JingJian.AspNetCore.All,引用该包即可。

package文件

新建项目中,如果该项目为业务功能包,则需要在根目录增加Package.cs文件

c#
namespace JingJian.Package.SimpleAService
{
    public class Package : PackageBase
    {
        public static Package Instance { get; set; } = new();

        public override string PackageName => "SimpleA测试包";

        public override string ServiceName => "SimpleA";
    }
}

功能包中配置数据库访问

c#
namespace JingJian.Package.SimpleAService
{
    public class Package : PackageBase
    {
        public override string PackageName => "SimpleA测试包";
        public override string ServiceName => "SimpleA";

        private readonly IConfiguration _configuration;

        public Package(IConfiguration configuration)
        {
            _configuration = configuration;
        }

        public override void OnConfigureServices(IServiceCollection services)
        {
            base.OnConfigureServices(services);

            services.AddEf(_configuration).AsEfDefault();
        }
    }
}

生命周期

Package包含5个生命周期函数,如果功能包加载失败,则不调用生命周期内任何方法。

c#
    	/// <summary>
        /// 开始挂载
        /// </summary>
        void OnBeforeMount(IApplication application);

		/// <summary>
        /// 配置依赖注入
        /// </summary>
        /// <param name="services"></param>
        void OnConfigureServices(IServiceCollection services);

        /// <summary>
        /// 挂载完成
        /// </summary>
        void OnMounted(IApplication application, IServiceProvider serviceProvider);

        /// <summary>
        /// 开始卸载
        /// </summary>
        void OnBeforeUnMount(IApplication application);

        /// <summary>
        /// 卸载完成
        /// </summary>
        void OnUnMounted(IApplication application);

OnBeforeMount

OnBeforeMount:功能包挂载之前调用

OnConfigureServices

OnConfigureServices:配置依赖注入

OnMounted

OnMounted:功能包挂载完成后调用,此时已可以获取到包的容器

OnBeforeUnMount

OnBeforeUnMount:卸载前调用

OnUnMounted

OnUnMounted:卸载完成时调用

广州宝点数字化科技