我的网页的后端必须根据它在查询字符串中接收到的值加载不同的类。我需要一种方法来确保所有其他必要的参数都存在,以便可以实例化该类。
这是一个精简的示例:
两个类,Car
都Cycle
继承自Vehicle
.
Public Class Car
Inherits Vehicle
Private Const _wheels as Int = 4
Private _transmission as string
Private _mpg as int
Public Sub New(Byval transmission as string, Byval mpg as int)
_transmission = transmission
_mpg = mpg
End Sub
End Class
Public Class Cycle
Inherits Vehicle
Private Const _wheels as Int = 2
Private _gears as Int
Public Sub New(ByVal gears as Int)
_gears = gears
End Sub
End Class
这是我的查询字符串:?type=car&transmission=automatic
所以我知道类型是什么,但我没有提供 mpg 详细信息,我需要能够实例化该类。
执行此操作的“手动”方法是解析查询字符串并编写如下内容:
if not string.isNullOrEmpty(transmission) and not string.isNullOrEmpty(mpg) then
dim c as new Car(transmission, mpg)
end if
但是如果有很多参数,这可能会变得混乱。当你想编辑一个类对象时,它也更难维护。
我想我想获取类所需的每个参数的名称,并查看查询字符串中是否存在该名称。但是,我显然需要在实例化类之前执行此操作。我不确定这是否可能。
这是做到这一点的聪明方法吗?有没有比写出我需要检查是否存在的每个参数更聪明的方法?
这个问题中的代码是用 vb.net 编写的,但我很高兴用 C# 讨论答案