我一直在互联网上漫游以寻找我的问题的答案,但还没有找到答案。
这是场景:我有一个 WCF 库服务,它针对包含我的一些配置的数据库工作。这些配置由几个自定义类组成;
[DataContract]
public class Config : Object
{
[DataMember]
public int AppId { get; set; }
[DataMember]
public int VersionId { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public DateTime DateCreated { get; set; }
[DataMember]
private List<ParameterRow> ParameterRows = null;
[DataContract]
public class ParameterRow : Object
{
[DataMember]
public string Name { get; set; }
[DataMember]
public int Id { get; set; }
[DataMember]
private List<ParameterItem> parameterItems = null;
}
[DataContract]
public class ParameterItem : Object
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Value { get; set; }
[DataMember]
public string DataType { get; set; }
}
在那里你可以看到这一切是如何相关的。我还包括了一个方法头,只是为了向您展示简单函数的示例。我的当前代码可以与当前函数(包括数据库)一起正常工作。我还有一个 WCF 库服务,它从数据库中检索配置并提供给客户端(当他们调用该服务时)。下面是客户端调用服务的函数头。
public Config GetConfig(int id);
但是,我无法弄清楚如何在一次调用中为客户端获取整个配置,并且仍然能够使用 Config 类的方法。我知道如何使用数据成员并向客户端获取属性,但不知道如何使用集合或方法。我可以访问双方的配置类,目前我的想法已经用完了。
任何人的建议/提示?非常感激!
编辑:这是服务中的 GetConfig 方法:
public Config GetConfig(int id)
{
dbHandler = new DatabaseHandler(new StoredProceduresFake());
resultConfig = dbHandler.GetLatestConfiguration(id);
return resultConfig;
}
这是调用的客户端(我刚刚创建了一个控制台应用程序来测试服务):
resultConfig = client.GetConfig(1);
但是在客户端功能中,我现在在所有配置属性上都出现错误。在客户端 V-Studio 要我写 Config.Name = Namek_BackingField 而服务只需要写 ConfigName。而且我无法访问参数行列表,从而使整个配置对我毫无用处。我的猜测是其余数据在 Config.ExtensionData 中,但我不知道如何访问它。
最终编辑;这已解决。如下所述,只有属性是从 WCF 服务通过网络发送的。为了解决这个问题,我创建了另一个类,它从从服务接收到的类“Config”中提取数据,根据需要存储它,还让我有可能获得自己的方法。这是解析数据的简单解决方案。(在某种程度上,呵呵)。感谢大家的帮助,不胜感激!