-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
请教 Assemblys 服务集合 跟 AppSettings.IocDll Ioc插件DLL列表 #13
Comments
这个不需要干预,配置文件中的iocDll 是为了让ioc 容器扫描程序集加入ioc容器。现在 模块之间有依赖可以参考这个示例https://github.com/duyanming/Anno.Core/blob/master/samples/Packages/Anno.Plugs.SoEasyService/SoEasyBootStrap.cs |
using Anno.EngineData; namespace Anno.Plugs.SoEasyService /// 插件启动引导器 /// DependsOn 依赖的类型程序集自动注入DI容器 /// [DependsOn( typeof(SoEasy.Application.AppBootstrap) //typeof(Domain.Bootstrap) //, typeof(QueryServices.Bootstrap) //, typeof(Repository.Bootstrap) //, typeof(Command.Handler.Bootstrap )] public class SoEasyBootStrap : IPlugsConfigurationBootstrap { /// /// Service 依赖注入构建之后调用 /// public void ConfigurationBootstrap() { //throw new NotImplementedException(); } /// /// Service 依赖注入构建之前调用 /// /// public void PreConfigurationBootstrap() { //throw new NotImplementedException(); } } } |
对哥写架构有兴趣,所以想了解一下如何设计 /// <summary>
/// 服务集
/// </summary>
public static class Assemblys
{
/// <summary>
/// 服务集合
/// </summary>
public static readonly Dictionary<string, Assembly> Dic = new Dictionary<string, Assembly>();
/// <summary>
/// Ioc模块DLL列表
/// </summary>
public static List<Assembly> DependedTypes { get; set; } = new List<Assembly>();
}
public static class AppSettings
{
/// <summary>
/// 数据库连接字符串
/// </summary>
public static String ConnStr { get; set; }
/// <summary>
/// 用户重置密码的时候的默认密码
/// </summary>
public static String DefaultPwd { get; set; } = "Anno";
/// <summary>
/// Ioc插件DLL列表
/// </summary>
public static List<string> IocDll { get; set; } = new List<string>();
} AppSettings 的 Add IocDll
Assemblys 的 Dic
RegisterIoc 透过 AppSettings.IocDll 参数, 去将实体注入容器为什么不用直接用 Const.Assemblys.Dic public static IServiceCollection UseDependencyInjection(this IServiceCollection services)
{
//已经加载过的不再重新加载
if (loader)
{
return services;
}
Const.AppSettings.IocDll.Distinct().ToList().ForEach(d =>
{
RegisterAssembly(services, Const.Assemblys.Dic[d]);
});
foreach (var assembly in Const.Assemblys.DependedTypes)
{
RegisterAssembly(services, assembly);
}
loader = true;
return services;
} 因为底下 PreConfigurationBootstrap 也是直接使用 Const.Assemblys.Dic /// <summary>
/// IOC注入之前插件事件
/// </summary>
private static void PreConfigurationBootstrap()
{
foreach (var svc in Const.Assemblys.Dic)
{
InvokeDependedTypesAssemblies(svc.Value);
}
} |
Assemblys 服务集合
AppSettings.IocDll Ioc插件DLL列表
这个Assemblys 服务集合 跟 Ioc插件DLL列表 资料我看是一样是否有什么特别的需求,需要分开存入
The text was updated successfully, but these errors were encountered: