using Autofac;
using SqlSugar;
using SqlSugar.IOC;
using WinformDevFarme;
using WinformDevFramework.Core.Autofac;
using WinformDevFramework.Core.Configuration;
using WinformDevFramework.Core.Winform;
namespace WinformDevFramework
{
internal static class Program
{
public static IContainer Container { get; private set; }
///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
// 创建容器
var builder = new ContainerBuilder();
// 注册 SqlSugar 配置
builder.Register(c =>
{
var db = new SqlSugarClient(new ConnectionConfig
{
ConnectionString = AppSettingsConstVars.DbSqlConnection, // 设置数据库连接字符串
DbType = AppSettingsConstVars.DbDbType == IocDbType.MySql.ToString() ? DbType.MySql : DbType.SqlServer,
IsAutoCloseConnection = true,
InitKeyType = InitKeyType.Attribute // 如果使用实体类的属性进行主键标识,请设置为 InitKeyType.Attribute
});
return db;
}).As().InstancePerLifetimeScope();
//获取所有窗体类型
var baseType = typeof(Form);
builder.RegisterAssemblyTypes(typeof(Program).Assembly)
.Where(t => baseType.IsAssignableFrom(t) && t != baseType).AsImplementedInterfaces()
.InstancePerDependency()
.Named(t => t.Name, typeof(Form));
builder.RegisterModule(new AutofacModuleRegister());
// 构建容器
Container = builder.Build();
AppInfo.Container = Container;
Application.Run(Container.ResolveNamed