Спасибо за комментарий. Все исключения, которые генерируются у меня на страницах (не дай бог) переадресуются на user-frendly страницу с описанием и предложением вариантов решения проблемы. Написанные по-русски описания качественно отличаются от английского языка (у меня не локализованный .net), а дополнительная информация для отладки легко берется из stackinfo. У меня нет проблем с этим. Кроме того, хотел бы заметить что в задачу данной статьи вообще не входил вопрос про исключения. Приведенный пример легко модифицируется и я оставляю право за вами использовать любые исключения, какие вам угодно.
По поводу статьи Громова: интересные мысли, только пример Линкольна несколько устарел. Можно ли проецировать такую фигуру как Линкольн, который жил к тому же почти 200 лет назад на современного среднестатистического американского миллионера-предпринимателя? Интересны были бы более свежие примеры. Пока на слуху только мега рывки IT-гениев и везунчиков. Или вовсе наследственные империи, которые собирались поколениями.
Нет, это законченное решение для любого класса. И не только в контексте asp.net.
Цель как понятно из текста, проверить валидность свойств и полей экземпляра класса одним махом.
Просто для меня наиболее востребованным этот механизм стал в asp.net. Работа такая :).
Вебу несколько десятков лет, а рекламе на порядок больше. Почему вы считаете, что законы рекламы, которые эволюционировали столько времени в вебе могут стать неактуальными? По моему, наоборот, увеличение объемов текста - вот проблема веба. Количество информации просто зашкаливает и нужно только еще усиленнее искать методы доводить информацию до получателя самыми быстрыми методами и минимальными объемами.
Нежелательное наследование extension метода - это, оказывается, серьезная проблема. Я потратил примерно два часа на поиски в интернете и не нашел решения. Похоже, скрыть extension method для потомков невозможно. Если вам или кому-то еще известен способ написать такой метод и скрыть его от потомков класса, очень прошу написать мне.
Из этого поста я не понял, чем вы недовольны? :)
Я прекрасно знаю чем каст от as отличается. Но спасибо, что напомнили.
И я действительно не вижу что в моем коде потенциально опасного. Предложите, пожалуйста свой вариант.
Если вы сомневаетесь в смысле данных расширений, то это другое дело. Я не агитирую за их использование. Я просто предлагаю свой вариант. Мне он нужен, я его использую.
Промолчать никак? Одно могу посоветовать, если не нравится - не читайте мои посты, потому что я и дальше буду продолжать в том же духе. Практика показывает, что какое-никакое внимание они притягивают. А в связи с тем, что на сайте и вовсе нет материалов по .net я считаю, что ваш совет не обоснован.
Читайте внимательнее: "Этот код следует расположить в методе Page_Load или там где следует из логики вашего элемента управления.". Из этого следует, что я привел только кусок функционала, использование его уже работа конкретного программиста и ситуации.
В данном контексте они не опасны просто потому что проверяется p_member.MemberType. Если же все же возникнет такая интересная ситуация когда MemberType будет содержать одно, а объект другое, то это уже проблема дургого характера.
Про "понадобилось" я уже объяснял и в самом топике и ниже в комментариях.
Сорри, а можно цифры продаж калины? Или хоть какие-то цифры? Пока только "Сколько автомобилей Калина, только благодаря этой рекламной кампании АвтоВАЗ не продал - сейчас уже не подсчитать, но шутка явно не удалась." - но это не серьезно. На какие факты вы опираетесь? Мне интересно. А вдруг все в точности наоборот, увидел человек на фото колено робота и пошел тутже покупать себе калину.
В начале статьи я написал что и как. Мне хотелось бы выложить несколько статей по созданию полезных базовых классов для страниц в asp.net. Там всюду используются атрибуты, поэтому первая статья типа вводной для описания одного из инструментов.
В остальном: хорошее предложение! Спасибо :) По слову "шаблоны" в вас сразу можно определить бывалого C++ программера, я прав? Generics переводят обычно как "обобщения".
Цель как понятно из текста, проверить валидность свойств и полей экземпляра класса одним махом.
Просто для меня наиболее востребованным этот механизм стал в asp.net. Работа такая :).
Я прекрасно знаю чем каст от as отличается. Но спасибо, что напомнили.
И я действительно не вижу что в моем коде потенциально опасного. Предложите, пожалуйста свой вариант.
Если вы сомневаетесь в смысле данных расширений, то это другое дело. Я не агитирую за их использование. Я просто предлагаю свой вариант. Мне он нужен, я его использую.
Про "понадобилось" я уже объяснял и в самом топике и ниже в комментариях.
В остальном: хорошее предложение! Спасибо :) По слову "шаблоны" в вас сразу можно определить бывалого C++ программера, я прав? Generics переводят обычно как "обобщения".