Как обеспечить блок нейтрализации вместо того, который не может быть загружен?

JSLint тестирует одного конкретного человека (Douglas Crockford) мнения относительно того, что делает хороший код JavaScript. Crockford очень хорош, но некоторые его мнения анальные сохраняющий в лучшем случае как правило подчеркивания или использование инкремента/операторов понижения.

Многими проблемами, отмечаемыми JSLint на вышеупомянутом выводе, являются проблемы, которые чувствует Crockford, приводит к трудному для поддержания кода, или они - вещи, которые он чувствует, привел его к выполнению 'умных' вещей в прошлом, которое может быть трудно поддержать.

существуют некоторые вещи, Crockford идентифицирует как ошибки, что я соглашаюсь с хотя, как недостающая вещь точек с запятой. Отбрасывание точек с запятой вынуждает браузер предположить, где вставить маркер конца оператора, и это может иногда быть опасно (это всегда медленнее). И несколько из тех ошибок связаны с JSLint, не ожидая, или поддерживание нескольких присвоений как jQuery делает на строке 24.

, Если у Вас есть вопрос об ошибке JSLint, электронная почта Crockford, он действительно хорош об ответе, и с его ответом, Вы будете, по крайней мере, знать, почему JSLint был реализован тот путь.

, О, и просто потому что библиотека популярна, не означает, что это - код, хорошо работает. JQuery популярен, потому что это - относительно быстрая, простая в использовании библиотека. То, что это хорошо реализовано, довольно несущественно к, он - популярность среди многих. Однако необходимо, конечно, читать больше кода, все мы должны.

JSLint может быть очень полезным в идентификации проблем с кодом, даже если JQuery не передает стандарты, которых это требует.

7
задан Kirill Osenkov 2 October 2009 в 03:18
поделиться

4 ответа

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

Также посмотрите Assembly.LoadFrom Method (String, Evidence, Byte [], AssemblyHashAlgorithm) похоже, вы можете управлять передачей хэша, а также хеш-алгоритмом.

1
ответ дан 7 December 2019 в 18:44
поделиться

Что вызывает загрузку попытка? IOW вы вызываете Assembly.Load или это результат попытки разрешения типа? Если последнее, вы можете попробовать поиграть с событием AppDomain TypeResolve, если первое - вы можете добавить дополнительную логику к вашему вызову Assembly.Load.

Если вы загружаете сборку вручную, убедитесь, что вы загружаете ее с помощью Сборка. Загрузка - не Assembly.LoadFrom. Есть небольшие различия в разрешении типов в зависимости от того, какая сборка контекста загружена в

1
ответ дан 7 December 2019 в 18:44
поделиться

Looks like what I want is impossible. I decided to go another route. We'll have to modify the build system to conditionally link to signed binaries instead of test-signed binaries at compile time.

Thanks everyone for the suggestions though!

0
ответ дан 7 December 2019 в 18:44
поделиться

существует стандартный способ найти сборку, если приложение не может этого сделать:

// register on assembly resolve exception
AppDomain.CurrentDomain.AssemblyResolve += ResolveEventHandler;

// try to load the assembly yourself
private static Assembly ResolveEventHandler(object sender, ResolveEventArgs args)
{
    return Assembly.Load(some_location);
}
0
ответ дан 7 December 2019 в 18:44
поделиться
Другие вопросы по тегам:

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