DB表作为出厂配置

本文关键字:出厂 配置 DB | 更新日期: 2023-09-27 18:22:08

我们有一些域类型值的表,即客户类型、操作类型等。

它是这样构建的:TypeID,Display,。。。

通过这种方式,web应用程序可以向用户显示显示并将ID发送到服务器端代码,在那里它可以与枚举相关或发送到工厂,以便通过ID创建实例。

我想添加一个信息列来创建类型(即加载程序集时的类型),这样Activator就可以创建实例,这样我就可以将配置缩小到上表。

在添加列之前,我必须在代码中具体定义类型,如下所示:

Factory.Register(id, typeof(MyClass));

如果我加上那一栏,我就可以做成:

Factory.Register(id, Type.GetType(StringValueFromDB));

目前它对我来说还可以,所以我的问题是:

它遵循良好的原则吗

它有什么缺陷吗

顺便说一句,每个工厂都是这里提到的一个通用工厂

DB表作为出厂配置

您真的需要在表中存储类型名吗?据我所知,TypeIDFactory.Register(id, typeof(MyClass));定义的代码库中的Type强链接。

如果您想将类型名称存储在表中,以便能够动态更改实现,那么您的方法可能会很有用。但就我个人而言,我认为这是没有必要的,因为您可能必须对代码的其余部分进行更改,以适应您无论如何所做的任何类型更改。

在类型上有一个像[Id("someId")]这样的属性,这样就可以在不调用Factory.Register的情况下通过反射发现它,这不是更优雅吗?

PS。我会把它作为评论发布,但我还没有声誉。