Протестируйте код, Mark, и сообщите мне то, что Вы узнаете.
РЕДАКТИРОВАНИЕ: Кроме того, в этой конкретной ситуации я не уверен, почему Вы должны были бы быть обеспокоены препятствованием тому, чтобы человек разделил на подклассы. Если у кого-то есть доступ к Вашему коду PHP для разделения на подклассы его, то у них также есть доступ к коду для копирования его и модификаторы доступа изменения к чему-то, что они (по любой причине) находят подходящими.
практическая полноценность Singleton в этом случае - то, что при помощи ее можно удостовериться, что Вы всегда используете то же соединение с базой данных для данного Запроса HTTP. Это выполняет это. Другой материал (использующий final
и частные конструкторы) полезен, чтобы знать с точки зрения теории, и еще более полезный знать, хотите ли Вы распределить код качества API другим программистам, но в случае этого конкретного примера, делают все ключевые слова, добавляют байты к Вашему размеру файла класса.
Это невозможно.
Посмотрите здесь Форум Microsoft , чтобы получить ответ от Microsoft в апреле этого года, касающийся той же проблемы, что и ваша.
В связанном элементе обратной связи сказано:
В случае, если вы хотите, чтобы флажок контролировал только установку ярлыка, а не его цель, в настоящее время нет решения в Visual Проекты установки Studio , и это лучше всего выполнить либо с помощью дополнительных знаний MSI и сценария после сборки, чтобы вручную изменять MSI после каждой сборки, либо путем перехода на более продвинутый (и гибкий) инструмент для разработки установки (например, , Windows Installer XML).
Вы не можете сделать это в интерфейсе VS "укажи и щелкни", но на самом деле нетрудно делать то, что вы хотите, с помощью простого настраиваемого действия.
Определите сценарий на VBScript или JavaScript. Вы можете настроить выполнение настраиваемого действия на основе любого условия, включая флажок в диалоговом окне.
Внутри сценария вы анализируете ввод и создаете ярлык. Я использовал соглашение для разделения аргументов сценария с помощью символа | символ, поэтому я разбираю вот так:
var parameters = Session.Property("CustomActionData").split("|");
var targetDir = parameters[0];
var checkBoxState = parameters[1];