2013-05-13 3 views
-2

Добавление этого для потомков, так как я не смог найти что-либо конкретное в моих начинающих в Google.Вызов неоднозначен между следующими методами или свойствами - перегрузками со строковыми и байтовыми входами []

Проблема:

Вызов неоднозначен между следующими методами или свойствами: 'System.Web.HttpUtility.UrlEncode (строка)' и 'System.Web.HttpUtility.UrlEncode (байт [])'

Примечание: этот вопрос является специфическим для, по крайней мере, перегруженных методов, которые принимают строки в одной подписи и байтах [] в аналогичной подписи (см подпись UrlEncode выше).

Эта проблема представляла собой исключение RuntimeBinderException в частичном использовании ASP.NET MVC4, но это могло произойти в других средах. Ключ в том, что UrlEncode имеет две перегрузки, а связующее средство времени выполнения не может определить, какую перегрузку использовать.

+0

Вы уверены, что запутался? – Paparazzi

+0

100% уверенно, если вы путаете, вы имеете в виду двусмысленность. : D – longda

ответ

0

Мое решение:

Хотя не является оптимальным, отбрасывая входные данные как правильный тип, кажется, дает время выполнения связующий достаточно наконечника, что он может решить правильный метод подписи использовать.

Например, вот какой-то «неудачный» код, который выбросил вышеуказанное исключение (из частичного кода MVC4 от подрядчика, и я не предлагаю, чтобы это был лучший способ создания привязывающего тега - иллюстрируют конкретный вопрос хорошо):

<a rel="nofollow" 
    href="https://twitter.com/share?text=Check%20this%20out!%[email protected](ViewBag.Title)%20 
    @(HttpUtility.UrlEncode(Request.Url.AbsoluteUri))%20%40codinghorror" 
    target="_blank"> 
    twitter 
</a> 

А вот это, переписано слегка отливке:

<a rel="nofollow" 
    href="https://twitter.com/share?text=Check%20this%20out!%[email protected](ViewBag.Title)%20 
    @(HttpUtility.UrlEncode((string)Request.Url.AbsoluteUri))%20%40codinghorror" 
    target="_blank"> 
    twitter 
</a> 

После исправления, я перезарядил страницу обижая и достаточно уверенный, пуф !, он работал.

Счастливые тропы!

+1

Тип возврата не является частью подписи метода, я не понимаю, как он исправил вашу проблему. http://stackoverflow.com/questions/8808703/method-signature-in-c-sharp – I4V

+0

Привет, не говоря о возврате типа. Я говорю о различных входах для перегрузок. Вот текущий список перегрузок для UrlEncode(): http://msdn.microsoft.com/en-us/library/system.web.httputility.urlencode.aspx – longda

+0

Исправлено, опечатка на моем конце. – longda

 Смежные вопросы

  • Нет связанных вопросов^_^