c# - .NET 反射创建类属性

标签 c# .net vb.net reflection

我对反射相当陌生,如果可能的话,我想知道如何创建一个类的实例,然后向该类添加属性,设置这些属性,然后再阅读它们。我没有任何代码,因为我什至不知道如何开始。 C# 或 VB 都可以。

谢谢

编辑:(详细说明)

我的系统有一个动态表单创建器。我的一位同事要求可以通过 Web 服务访问表单数据。我的想法是创建一个类(基于动态表单)向类添加属性(基于表单字段)设置这些属性(基于为这些字段输入的值)然后返回 Web 服务中的类。

此外,Web 服务将能够设置类中的属性,并最终将这些更改提交给数据库。

最佳答案

如果你的意思是动态创建一个类,那么两个选项是:

如果你的意思是创建一个现有类的实例,那么从Activator.CreateInstance开始创建对象的实例,然后查看 Type 上的方法例如GetProperty这将返回 PropertyInfo你可以调用GetValueSetValue上。


更新:对于您描述的场景,从 Web 服务返回动态数据,我建议不要使用这种方法,因为您很难编写代码,而且静态类型的语言也很难使用。相反,正如评论和其他答案之一所建议的那样,某种字典可能是更好的选择。

(请注意,当我说返回某种字典时,我是在比喻而不是字面意思,即返回在概念上与字典相同的东西,例如键值对列表。我不会直接推荐返回一个(即使您使用的是支持此功能的 WCF),因为最好完全控制您返回的 XML。)

关于c# - .NET 反射创建类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/799022/

相关文章:

.net - 是否有用于 .NET 的 headless 浏览器(用于自动 Web-UI-测试)?

.net - 将 SPA 中的 cookie 身份验证升级到 .NET Core 2.0

string - 检查列表框中的项目忽略大小写

javascript - 将 .hta 文件编译为 .exe

c# - 白色 - 文件打开对话框

c# - HttpClient PutAsync 不向 api 发送参数

c# - 将 char * 发送到字符串 c#

c# - 当服务器具有有效的 SSL 证书时,将 WebClient.UploadFile() 与 "Handshake failed...unexpected packet format"一起使用时获取 "https"

c# - 尝试访问 wcf 服务时,契约(Contract)为 'IService1' 的 ServiceEndpoint 上的 CustomBinding 缺少 TransportBindingElement 错误

mysql - VB.net转MySql存储过程报错