WCF代理中的可选参数

时间:2014-04-29 08:21:41

标签: c# .net wcf

在下面的方法中,last参数是一个可选参数,它通过二进制文件的标准访问来工作。但是在WCF代理中,它变成了强制性的,我无法避免,是否需要做一些事情来使其成为WCF代理的可选项。目前的搜索表明,可能无法这样做,只需保持手指交叉即可找到解决方法。

public UnifiedDTO GetAllCardTitle(string trainSymbolOrCarLocation, 
                                           DateTime startDate, 
                                           DateTime endDate, 
                                           string procedureName = CardTitle.procedureNameTrainRuns)

2 个答案:

答案 0 :(得分:0)

虽然它是可选的"在线上"一旦数据被序列化为XML,您就无法设置默认值,也无法在代码中使用默认值。您可以在代码代理周围编写另一个包装器,它看起来就像你想要的那样。

答案 1 :(得分:0)

我认为有两种解决方案:

1 - 您可以使用可选参数创建两个方法。

public UnifiedDTO GetAllCardTitle(string trainSymbolOrCarLocation, 
                                           DateTime startDate, 
                                           DateTime endDate)

public UnifiedDTO GetAllCardTitle(string trainSymbolOrCarLocation, 
                                           DateTime startDate, 
                                           DateTime endDate, 
                                           string procedureName)

2 - 你可以创建一个代表你的参数的DTO,并在DTO中指定一个默认值。