本文整理汇总了C#中VkParameters.ContainsKey方法的典型用法代码示例。如果您正苦于以下问题:C# VkParameters.ContainsKey方法的具体用法?C# VkParameters.ContainsKey怎么用?C# VkParameters.ContainsKey使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VkParameters
的用法示例。
在下文中一共展示了VkParameters.ContainsKey方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Call
public VkResponse Call(string methodName, VkParameters parameters, bool skipAuthorization = false)
{
if (!parameters.ContainsKey("v"))
{
parameters.Add("v", VkApiVersion);
}
string answer = null;
if (_captchaSolver == null)
{
answer = Invoke(methodName, parameters, skipAuthorization);
}
else
{
var numberOfRemainingAttemptsToSolveCaptcha = MaxCaptchaRecognitionCount;
var numberOfRemainingAttemptsToCall = MaxCaptchaRecognitionCount + 1;
long? captchaSidTemp = null;
string captchaKeyTemp = null;
var callCompleted = false;
do
{
try
{
parameters.Add("captcha_sid", captchaSidTemp);
parameters.Add("captcha_key", captchaKeyTemp);
numberOfRemainingAttemptsToCall--;
answer = Invoke(methodName, parameters, skipAuthorization);
callCompleted = true;
}
catch (CaptchaNeededException captchaNeededException)
{
// Если мы обрабатываем исключение не первый раз, сообщаем решателю капчи
// об ошибке распознавания предыдущей капчи
if (numberOfRemainingAttemptsToSolveCaptcha < MaxCaptchaRecognitionCount)
{
_captchaSolver?.CaptchaIsFalse();
}
if (numberOfRemainingAttemptsToSolveCaptcha <= 0)
{
continue;
}
captchaSidTemp = captchaNeededException.Sid;
captchaKeyTemp = _captchaSolver?.Solve(captchaNeededException.Img?.AbsoluteUri);
numberOfRemainingAttemptsToSolveCaptcha--;
}
} while (numberOfRemainingAttemptsToCall > 0 && !callCompleted);
// Повторно выбрасываем исключение, если капча ни разу не была распознана верно
if (!callCompleted && captchaSidTemp.HasValue)
{
throw new CaptchaNeededException(captchaSidTemp.Value, captchaKeyTemp);
}
}
var json = JObject.Parse(answer);
var rawResponse = json["response"];
return new VkResponse(rawResponse) { RawJson = answer };
}
示例2: Call
internal VkResponse Call(string methodName, VkParameters parameters, bool skipAuthorization = false, string apiVersion = null)
{
if (!parameters.ContainsKey("v"))
{
if (!string.IsNullOrEmpty(apiVersion))
parameters.Add("v", apiVersion);
else
{
//TODO: WARN: раскомментировать после добавления аннотаций ко всем методам
//throw new InvalidParameterException("You must use ApiVersionAttribute except adding \"v\" parameter to VkParameters");
}
}
else
{
//TODO: WARN: раскомментировать, исправив ошибки в существующем коде
//throw new InvalidParameterException("You must use ApiVersionAttribute except adding \"v\" parameter to VkParameters");
}
return Call(methodName, parameters, skipAuthorization);
}
示例3: Call
internal VkResponse Call(string methodName, VkParameters parameters, bool skipAuthorization = false, string apiVersion = null)
{
if (!parameters.ContainsKey("v"))
{
parameters.Add("v", !string.IsNullOrEmpty(apiVersion) ? apiVersion : VkApiVersion);
}
return Call(methodName, parameters, skipAuthorization);
}