Только первые два ответа верны в объеме исходного вопроса. И второе конечно не слишком сложно. Обертывание вспомогательного метода классом для каждого возможного атрибута - это хорошая объектно-ориентированная разработка и именно то, что Microsoft делает во всей среде, например. файлы конструктора параметров, сгенерированные Visual Studio.
Я бы порекомендовал использовать первое, если вы просто хотите одно конкретное свойство, второе, если вы хотите больше. Должно быть частью SDK действительно. Мы пытаемся прочитать WMAppManifest.xml здесь, а не AssemblyInfo, поэтому стандартные метаданные отражения сборки не годятся.
Кстати, если вы действительно хотите получить название продукта из атрибутов сборки (не WPAppManifest.xml), тогда последний пример считывал неправильный атрибут! Используйте атрибут AssemblyProductAttribute, а не AssemblyTitleAttribute. Заголовок сборки - это действительно заголовок файла, по умолчанию он совпадает с именем файла сборки (например, MyCompany.MyProduct.WinPhone7App), тогда как продукт, как правило, будет выглядеть как правильно отформатированный заголовок вашего приложения в магазине (например, «Мой Товар"). Он может даже не обновляться после использования страницы свойств VS, поэтому вы должны проверить это.
Я использую сборку AssemblyInfo для всех других типов приложений, чтобы показать официальное название продукта и версию сборки на странице about, это, безусловно, правильно. Но для этих специальных типов телефонных приложений манифест магазина имеет большее значение и другие атрибуты, которые могут вам понадобиться.