В этом разделе описан простой пример, демонстрирующий как определить и использовать в приложении одну Настройку типа string. На первом этапе реализована необходимая инфраструктура, а затем продемонстрировано, как обратиться к значению Настройки в обработчике события simpleAction1.Execute. Получить итоговое решение можно по ссылке QuickBCSettings.

Дя решения задачи необходимо последовательно выполнить следующие шаги:

 

    class DefaultSlice : SettingsDefaultValueSlice<SettingsValueSlice>

    {

        

        public DefaultSlice(SettingsAccessor.ServiceSpaceContext serviceContext)

            : base(serviceContext)

        { 

        }

        

        public override string Name

        {

            get

            {

                return "SliceForSettings";

            }

        }

 

        public override IEnumerable<SettingsValueSlice> GetChildrenFromNextSlice()

        {

            return new List<SettingsValueSlice>();

        }

    }

 

 

    public class SolutionSettingsAccessor : SettingsAccessor

    {

        public override void Setup(XafApplication application)

        {

            base.Setup(application);

            this.CreateRootSlice<DefaultSlice>();

        }

    }

 

 

        public override void Setup(XafApplication application) {

            base.Setup(application);

            SettingsAccessor.Instance = new SolutionSettingsAccessor();

            SettingsAccessor.Instance.Setup(application);

        }

 

 

        public interface ISettingsValues

        {

            IModelKeyString MessageText { get; }

        }

 

 

        public override void ExtendModelInterfaces(ModelInterfaceExtenders extenders) {

            base.ExtendModelInterfaces(extenders);

            extenders.Add<IModelBCSettingsISettingsValues>();

        }

 

Win

Web

 

        public partial class MessageTextWindowController : WindowController

        {

            public MessageTextWindowController()

            {

            InitializeComponent();

            // Target required Windows (via the TargetXXX properties) and create their Actions.

            }

            protected override void OnActivated()

            {

            base.OnActivated();

            // Perform various tasks depending on the target Window.

            }

            protected override void OnDeactivated()

            {

            // Unsubscribe from previously subscribed events and release other references and resources.

            base.OnDeactivated();

            }

 

            private void simpleAction1_Execute(object sender, SimpleActionExecuteEventArgs e)

            {

            var str = ((ISettingsValues)SettingsAccessor.Instance.ObjectSpace.AppSettings().Root()).MessageText.Value;

            MessageObject.CreateMessage(e.ShowViewParameters, Application, MessageType.Info, "MessageText", str);

            }

        }

 

Детальная информация о сервисе Настроек приложения изложена в разделе Подробности.