Неявный , когда Вы определяете свой интерфейс через участника на Вашем классе. Явный , когда Вы определяете методы в своем классе в интерфейсе. Я знаю, что сбивающие с толку звуки, но вот - то, что я имею в виду: IList.CopyTo
был бы неявно реализован как:
public void CopyTo(Array array, int index)
{
throw new NotImplementedException();
}
и явно как:
void ICollection.CopyTo(Array array, int index)
{
throw new NotImplementedException();
}
различие, являющееся, который неявно доступен через Ваш класс, который Вы создали, когда это снято как тот класс, а также когда его бросок как интерфейс. Явная реализация позволяет ему только быть доступным, когда брошено как сам интерфейс.
MyClass myClass = new MyClass(); // Declared as concrete class
myclass.CopyTo //invalid with explicit
((IList)myClass).CopyTo //valid with explicit.
я использую явный, прежде всего, для содержания реализации в чистоте, или когда мне нужны две реализации. Но независимо я редко использую его.
я уверен, что существует больше причин использовать его, используют его, что другие отправят.
Посмотрите следующее сообщение в этом потоке для превосходного обоснования позади каждого.
Похоже, ваша проблема описана здесь: http://www.grauw.nl/blog/entry/470 . Проблема в том, что в спецификации XMLHttpRequest в настоящее время указано, что пользовательские агенты не должны устанавливать какие-либо заголовки Accept по умолчанию для запроса, поэтому req.setRequestHeader () может просто добавлять новые Accepts. К сожалению, браузеры этого еще не придерживаются. Описание проблемы позволяет вам протестировать ваш браузер, чтобы убедиться, что он работает должным образом, и, к сожалению, IE7, Chrome, Safari, Firefox и Opera не работают.
Лоренс Грау также рассказывает о последствиях первой попытки обнулить заголовок Accept с помощью
setRequestHeader('Accept', '')
или
setRequestHeader('Accept', null)
Здесь могут помочь.
Уродливые взломы на стороне сервера: если у вас есть контроль над серверным приложением, вы можете жестко настроить его так, чтобы он всегда возвращал XML, добавьте поддержку настраиваемого типа мультимедиа, например "
Я думаю, что исходный плакат мог иметь отношение к этой ссылке: http://blogs.msdn.com/ieinternals/archive/2009/07/ 01 / IE-and-the-Accept-Header.aspx , однако, это не объясняет наблюдаемого поведения.
IE сам по себе не имеет описанного вами поведения, и установка заголовка Accept через XMLHTTPRequest должна работать правильно. Я протестировал IE8 для подтверждения.
Возможно, в вашей версии jQuery есть проблема или у вас есть какой-то плагин, который искажает ваш трафик?
Я не верю, что IE (любая версия) хорошо работает с заголовком Accept. См. Эту ссылку: [ http://blogs.msdn.com/ieinternals/archive/2009/07/01/IE-and-the-Accept-Header.aspx]
Возможным решением может быть проверка Пользовательский агент, чтобы узнать, является ли это IE. Если да, то проверьте наличие text / xml.
Удачи!
Редактировать:
Оппс по ссылке. Я догадывался, что IE всегда добавляет / , а установка заголовка accept просто добавляет желаемый тип mime после / .