C# - Web 服务属性名称 动态构造

C# - Web Service property name Dynamic construction

提问人:user2454589 提问时间:6/5/2013 最后编辑:user2454589 更新时间:6/5/2013 访问量:109

问:

我应该使用从两个嵌套的 foreach 派生的变量“section”和“fieldName”在 Web 服务调用中以虚拟方式构造属性名称(以设置它)(如下所示)。我尝试使用一些代码在谷歌上搜索“变量”,但没有成功。 任何帮助将不胜感激。 谢谢。

SyncRequest request = new SyncRequest();
[...]
foreach (String section in sections) {
    [DB query]
    DataTable dtSectionFields = drSection.GetSchemaTable();
    foreach (DataColumn column in dtSectionFields.Columns)  {
        [...]
        fieldName = [something];
        fieldContent = [something else];

        request.methodx.[section].[fieldName] = fieldContent;
    }
}
C# Web 服务 变量

评论

0赞 CodeCaster 6/5/2013
我想会有“使用反射”的答案,但我认为这应该用强类型来解决。您可能需要稍微更改一下设计。也许你可以更多地解释这个例子?
0赞 user2454589 6/5/2013
@DaveRook 对不起,但也许我不明白。是的,下一次迭代会覆盖上一次迭代,但此时应该设置了该属性。还是你的意思是别的?
0赞 user2454589 6/5/2013
@CodeCaster 首先,我创建一个 Web 服务对象(“请求”),然后我开始遍历部分,并在部分内部遍历字段。我想做的是替换最后一行中的[section]和[fieldName]占位符(“request.methodx.[部分]。[fieldName]“),以及每次迭代时由嵌套循环设置的两个相应变量。从根本上说,我需要在每次迭代时以虚拟方式构建 Web 服务属性调用来设置它。
0赞 CodeCaster 6/5/2013
那么,你能把它做成一本字典吗?
0赞 user2454589 6/5/2013
@CodeCaster我阅读了有关 C# 变量变量的“经典”线程,并尝试了(看似)最流行的解决方案: <code>var vartable = new Dictionary<string, Variable>();vartable[strLine] = new 变量(input);</代码>但也许我没有以正确的方式使用它(很明显我不是 C# 大师)。请您举例说明一下。

答: 暂无答案