【发布时间】:2014-10-22 22:33:15
【问题描述】:
我有一个案例,我需要调用几个不同的 Web 端点,并且需要为每个调用进行相同的设置和拆除。我正在尝试编写一个更通用的方法,我可以在其中传递我想要执行的方法以及要发送到端点并期望返回字符串的包。
从我的代码中我可以拨打这个电话:
var ret = WebServiceHandler.Execute(WebServiceHandler.LoadNewAsset(package));
Execute 的定义如下:
internal static string Execute<T>(Func<T, string> executeThisAction)
{
Func<T, string> resp;
Setup();
resp = executeThisAction;
CleanUp();
return resp.ToString();
}
这是我要执行的方法之一:
internal static Func<CarsWS_AssetLoad, string> LoadNewAsset(AssetLoad package)
{
string resp;
try
{
// Make the web service call...
var assetLoadReturn = _service.LoadNewAsset(new LoadNewAssetRequest {UserCredentialsHeader = _credentials, asset = package});
// Evaluate results...
if (assetLoadReturn.LoadNewAssetResult.responseType == "Success")
resp = (result != null && !String.IsNullOrEmpty(result.asset.assetID))
? "Got assetID: " + result.asset.assetID
: "No assetID returned.";
else
resp = result.responseDescription.Trim();
}
catch (Exception ex)
{
resp = "Error calling LoadNewAsset()." + Environment.NewLine + ex.GetFullMessage();
}
return resp; // <== THIS IS NOT A VALID RETURN <== //
}
此时我的大脑正在关闭。如何将字符串正确返回到调用堆栈???
【问题讨论】: