[英]Accessing properties of dynamically created subclass (strongly typed)
这似乎是一种可能会经常出现的模式,所以我认为也许SO上的某个人知道如何完成此操作。 假设我有三节课:
class Class1 {
string A { get; set; }
}
class Class2 : Class1 {
string B { get; set; }
}
class Class3 : Class1 {
string C { get; set; }
}
和一个字符串: x = "Namespace.Class2";
目标是库代码实例化x
给定给客户端的类型给定的实例。 然后,客户端访问Class2的强类型属性,如下所示:
Class2 test = CreateTheObject();
test.B = "bad wolf";
test.A = "super";
您是对的,我们可以反映这些属性,但是现在不再强类型化。 用户可以执行GetProperty(Class2,“ SomePropertyThatDoesntExist”)。 最终可能会引发运行时异常,但这是糟糕的用户体验。 不过,这是我现在正在编码的解决方案,因为我不知道该怎么做我想做的事情。
无论如何,还是要问一个问题:任何想法如何实现?
如果所讨论的类型在编译类型中未知,则不能强类型化。 而且,如果您在编译时知道类型,则可以将其赋值或强制转换为该类型。
您可以使用dynamic
关键字执行所需的操作。 但是,由于类型在编译时未知,因此,如果使用的其他类型没有相关属性,则可能会导致运行时错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.