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));
目前它对我来说还可以,所以我的问题是:
它遵循良好的原则吗
它有什么缺陷吗
顺便说一句,每个工厂都是这里提到的一个通用工厂
您真的需要在表中存储类型名吗?据我所知,TypeID
与Factory.Register(id, typeof(MyClass));
定义的代码库中的Type
强链接。
如果您想将类型名称存储在表中,以便能够动态更改实现,那么您的方法可能会很有用。但就我个人而言,我认为这是没有必要的,因为您可能必须对代码的其余部分进行更改,以适应您无论如何所做的任何类型更改。
在类型上有一个像[Id("someId")]这样的属性,这样就可以在不调用Factory.Register的情况下通过反射发现它,这不是更优雅吗?
PS。我会把它作为评论发布,但我还没有声誉。