【问题标题】:Create object names dynamically动态创建对象名称
【发布时间】:2014-03-21 18:36:15
【问题描述】:

我正在用 C# 为特定应用程序构建 Web 服务,我有一个 XML 模块定义。我创建了一个名为 Field 的类,它包含模块上所有字段的属性。我想做的是创建字段对象,但动态命名它们,然后将它们添加到某种列表中。所以当我从客户端引用它们时,它会是这样的:

Module.Fields.MyDynamicName.FieldProperty

这可能吗?谁能指出我如何做到这一点的正确方向。

希望我的问题有意义。

【问题讨论】:

  • 我认为这是不可能的。但是您可以做一个字典属性并将项目添加为属性名称和值,然后通过属性名称访问它
  • 我尝试了一个字典,但它需要序列化,因为我在 Web 服务中使用它。我在其他网络服务中看到过类似的事情
  • 看看这个如何序列化字典stackoverflow.com/questions/12554186/…

标签: c# asp.net .net soap wsdl


【解决方案1】:

基本上你需要为“延迟设计”进行设计,这意味着你在编译时不知道设计是什么,但你仍然需要适应它。

可能有几种方法,但我过去所做的是使用键/值对的字典列表来存储字段。使用序列化(我更喜欢 Json),您可以将任何内容塞入字符串并将其存储为值,然后在需要时对其进行反序列化。

【讨论】:

  • 我对应用程序层一无所知,但您可以查看 EAV(实体属性值)数据库结构,了解如何持久化和检索 KVP 的想法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-23
  • 1970-01-01
  • 2021-03-13
相关资源
最近更新 更多