Мне действительно нравится этот оператор, но читатель должен быть принят во внимание.
Вы всегда должны балансировать компактность компакт-диска с затраченным временем на чтение и тем самым иметь довольно серьезные недостатки .
Прежде всего, есть случай Оригинального Аскера. Он просто потратил час, разместив об этом и прочитав ответы. Как долго он должен был писать автору каждый?: Как if, то на протяжении всей его жизни. Не час, чтобы быть уверенным.
Во-вторых, на языках C-типа у вас появляется привычка просто знать, что условные обозначения - это первое, что есть в строке. Я заметил это, когда я использовал Ruby и натолкнулся на строки вроде:
callMethodWhatever(Long + Expression + with + syntax) if conditional
Если бы я был долгое время пользователем Ruby, у меня, вероятно, не было бы проблем с этой строкой, а из C, когда вы видите «callMethodWhatever» в качестве первой вещи в строке, вы ожидаете, что она будет выполнена. «?» Менее загадочный, но все еще достаточно необычный, чтобы отбросить читателя.
Преимущество, однако, - это действительно крутое чувство в вашем животике, когда вы можете написать 3-строчный оператор if в пространство 1 строки. Не могу отрицать этого :) Но, честно говоря, не обязательно более читаемый 90% людей там просто из-за своей «редкости».
Когда это действительно назначение на основе логического значения, и значения у меня нет с ним, но его можно легко злоупотреблять.
На обходное решение , который Microsoft отправила на выпуск Подключения, который я зарегистрировал для этого, это - известная проблема и не будет никакого решения для него, по крайней мере, в текущем выпуске:
причина отказа добавить новый сервисный объект: При добавлении нового объекта и обновлении конфигурационного файла, система попытается загрузить конфигурационный файл, таким образом, это попытается искать и загрузить блок cusom расширения в этом файле конфигурации. Только в случаях, что блок является GACed или расположен в том же пути как по сравнению с exe (Программа Visual Studio Files\Microsoft 9.0\Common7\IDE), система может найти его. Иначе ошибочное диалоговое окно откроется и "добавьте, что новый объект" перестанет работать.
я понимаю Ваши болевые точки. К сожалению, мы не можем внести это изменение в текущем выпуске. Мы исследуем его в более поздних выпусках и попытаемся предоставить лучшее решение тогда, такое как обеспечение диалогового окна обзора, чтобы позволить клиентам определить путь или лучшее сообщение об ошибке, чтобы указать, что некоторая работа вокруг решения, и т.д.
Может Вы пробовать работу вокруг на текущем этапе: GAC Ваш пользовательский дополнительный блок или копия это к "Программе Visual Studio Files\Microsoft 9.0\Common7\IDE"?
Мы обеспечим readme для помощи другим клиентам, которые могут столкнуться с той же проблемой.
, К сожалению, кажется, что я являюсь неудачливым на этом.
Я попробовал это новым проектом только, чтобы удостовериться, что это не было Вашим определенным проектом/конфигурацией и имело ту же самую проблему.
Используя журналы сплава, кажется, что система ищет расширения поведения ТОЛЬКО в каталоге IDE (C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE). Копирование блока к этому каталогу на шаге постсборки работы, но ужасно.
У Вас есть копия Framework.dll с Вашим пользовательским поведением в каталоге bin Вашего веб-проекта? Если не, который является, вероятно, проблемой. Visual Studio ищет реализацию поведения. Так как это перечислено в Вашей конфигурации, это не думает для взгляда в других проектах; это ожидает находить блок в мусорном ведре.
В зависимости от того, как Ваш проект является установкой, он может быть в состоянии работать в отладке без этого блока, помещаемого в мусорное ведро, хотя VS обычно создает его и помещает его там. Но снова, это зависит от того, как вещами является установка.
Так или иначе, мог бы просто хотеть проверить дважды, в котором блок доступен во время проектирования.
Помещение блока в GAC, вероятно, помогло бы, но я ценю, это не ответ, который Вы ищете. Не уверенный, где еще VS будет искать блоки кроме GAC и каталога, содержащего devenv.exe.
К сведению всех, кто столкнулся с этим в наши дни, возможным решением является ПОЛНАЯ квалификация вашей сборки в вашем app.config/web.config. НАПРИМЕР если у вас есть
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="clientCredential" type="Client.ClientCredentialElement, Client" />
</behaviorExtensions>
</extensions>
попробуйте - заменяя значения по мере необходимости
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="clientCredential" type="Client.ClientCredentialElement, Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</behaviorExtensions>
</extensions>
это конкретное решение сработало для меня.