Операция может дестабилизировать время выполнения?

1) Обратите внимание на URL-адрес: «localhost: 55828 / token» (не «localhost: 55828 / API / токен»)

2) Обратите внимание на данные запроса. Его не в формате json, его просто данные без двойных кавычек. "userName=xxx@gmail.com& password = Test123 $ & amp; grant_type = password"

3) Обратите внимание на тип содержимого. Content-Type: 'application / x-www-form-urlencoded' (не Content-Type: 'application / json')

4) Когда вы используете javascript для создания почтового запроса, вы можете использовать следующее:

$http.post("localhost:55828/token", 
    "userName=" + encodeURIComponent(email) +
        "&password=" + encodeURIComponent(password) +
        "&grant_type=password",
    {headers: { 'Content-Type': 'application/x-www-form-urlencoded' }}
).success(function (data) {//...

Смотрите следующие скриншоты из Postman:

37
задан Jason Baker 20 December 2008 в 16:08
поделиться

6 ответов

Я полагаю, что это - проблема ковариантности или контравариантности, как отмечено это сообщение форума .

См. Ковариантность и Контравариантность в C#, Части второй: Ковариантность Массива и остальная часть серия Covariance и Contravariance в блоге Eric Lippert.

, Хотя он имеет дело с Массивами в статье, я связался, я полагаю, что подобная проблема представляет себя здесь. С Вашим первым примером Вы возвращаетесь IEnumerable, который мог содержать объекты, которые реализуют интерфейс, который является больше , чем ISomeTable (т.е. - Вы могли поместить Черепаху в Животные IEnumerable, когда это IEnumerable может только содержать Жирафов). Я думаю причина, она работает, когда Вы возвращаетесь IQueryable, то, потому что это большее/более широко , чем что-нибудь, что Вы могли возвратить, таким образом, Вам гарантируют это, что Вы возвращаете, Вы будете в состоянии обработать (?).

Во втором примере, OfType гарантирует, что то, что возвращается, является объектом, который хранит всю информацию, необходимую для возврата только тех элементов, которые могут быть брошены Жирафу.

я вполне уверен, это имеет некоторое отношение к проблемам безопасности типов, обрисованной в общих чертах выше, но поскольку Eric Lippert говорит Вред Функций Высшего порядка Мой Мозг , и я испытываю затруднения при выражении точно, почему это - проблема co/contravariant.

19
ответ дан Grant Wagner 20 December 2008 в 16:08
поделиться

Я предполагаю, Linq к Sql не может поддерживать кастинг, когда переводят в sql оператор.

-4
ответ дан Chaowlert Chaisrichalermpol 20 December 2008 в 16:08
поделиться

Делает это, все еще перестали работать, если Вы изменяете это:

select new SomeObject { ... } as ISomeTable;

к этому:

select (ISomeTable) new SomeObject { ... };

?

Раз так (поскольку я вижу, что Вы подтвердили), возможно, это имеет отношение к тому, что интерфейсная реализация могла быть или классом или структурой? Проблема все еще появляется, если Вы бросаете к абстрактному классу, а не интерфейсу?

0
ответ дан Av Pinzur 20 December 2008 в 16:08
поделиться

Просто предположение, но как оператор может возвратить пустой указатель - таким образом, он может иметь отношение к фактической реализации эти new SomeObject { ... } код, так как это - синтаксический сахар. return results.OfType<ISomeTable>(); фильтры на основе типа, таким образом, оператор возврата Вашего метода только возвратит тот тип (гарантирующий безопасность типов). Я столкнулся с подобной проблемой с возвратом универсальных типов.

P.S. Я люблю "Операцию, мог дестабилизировать время выполнения". исключение. Это почти похоже, "Вы могли бы аварийно завершить Интернет" исключение.

5
ответ дан Zachary Yates 20 December 2008 в 16:08
поделиться
  • 1
    на этой области основное расположение переместится далее направо и не будет видимо. если Вы, парни хотят переместить всего половину из него, можно разделить ее на два. пустите в ход moveFactor = (mDrawerList.getWidth () * slideOffset) / 2 – Rye 11 February 2014 в 06:28

Я обнаружил, что OfType имеет неприятные побочные эффекты при использовании linq to sql. Например, части linq, которые ранее оценивались после выполнения запроса к базе данных, вместо этого были переведены в SQL. Это не удалось, поскольку в этих разделах не было эквивалента SQL. В итоге я использовал .Cast, что, похоже, тоже решило проблему.

0
ответ дан 27 November 2019 в 05:00
поделиться

Я нашел эту запись, когда искал собственное решение вопроса "операция может дестабилизировать время выполнения". Хотя приведенный выше совет по ковариации/контравариации выглядит очень интересно, в итоге я обнаружил, что получаю то же сообщение об ошибке, выполняя свои модульные тесты с включенным покрытием кода и установленным атрибутом сборки AllowPartiallyTrustedCallers.

Удаление атрибута AllowPartiallyTrustedCallers привело к нормальному выполнению моих тестов. Я также мог отключить покрытие кода, чтобы заставить их работать, но это не было приемлемым решением.

Надеюсь, это поможет кому-то еще, кто попал на эту страницу, пытаясь найти решение этой проблемы.

14
ответ дан 27 November 2019 в 05:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: