public override void WriteJson(JsonWriter writer,
                                       object untypedValue,
                                       JsonSerializer serializer)
        {
            if (untypedValue == null)
            {
                serializer.Serialize(writer,
                                     null);

                return;
            }

            ResolveMode value = (ResolveMode)untypedValue;

            switch (value)
            {
            case ResolveMode.Independent:
                serializer.Serialize(writer,
                                     "independent");

                return;

            case ResolveMode.Shared:
                serializer.Serialize(writer,
                                     "shared");

                return;
            }

            throw new Exception("Cannot marshal type ResolveMode");
        }
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            try
            {
                if (!(value.GetType() == typeof(string)))
                {
                    return(null);
                }
                int param = 0; //Sometimes users can choose not to enter parameter value, in such cases, we make 0 as default.
                if (parameter != null)
                {
                    int.TryParse((string)parameter, out param);
                }
                ResolveMode _resolve_mode = ResolveMode.AsRegistered;
                switch (param)
                {
                //None
                case 0:
                    _resolve_mode = ResolveMode.AsRegistered;
                    break;

                //TargetOnly
                default:
                    _resolve_mode = ResolveMode.Transient;
                    break;
                }
                return(ContainerStore.Singleton.controls.generateView((string)value, mode: _resolve_mode));
            }
            catch (Exception)
            {
                return(null);
            }
        }
Exemplo n.º 3
0
 public ResolveLoad(ResolveMode _mode, string _priority_key, string _contract_name, Type _contract_type, Type _contract_parent, Type _concrete_type, TransientCreationLevel _transient_level = TransientCreationLevel.None) : base(_priority_key, _contract_type, _concrete_type, _transient_level)
 {
     //Nullables
     contract_name   = _contract_name;
     contract_parent = _contract_parent;
     mode            = _mode;
 }
Exemplo n.º 4
0
 public static async Task <TType> ResolveAsync <TType>(ResolveMode resolveMode = ResolveMode.Global)
     where TType : class
 {
     return(await Task.Factory.StartNew(() => (TType)Container.GetObject(typeof(TType), resolveMode),
                                        CancellationToken.None,
                                        TaskCreationOptions.DenyChildAttach, TaskScheduler.Default));
 }
Exemplo n.º 5
0
 public static object Resolve([NotNull] Type targetType, ResolveMode resolveMode = ResolveMode.Global)
 {
     if (targetType is null)
     {
         throw new ArgumentNullException(nameof(targetType));
     }
     return(Container.GetObject(targetType, resolveMode));
 }
 protected object GetDependency(Type type, Context context, ResolveMode resolveMode)
 {
     if (resolveMode == ResolveMode.Create)
     {
         return(context.AutocomposeDependency(type));
     }
     return(context.Resolve(type));
 }
Exemplo n.º 7
0
 public static async Task <object> ResolveAsync([NotNull] Type targetType, ResolveMode resolveMode = ResolveMode.Global)
 {
     if (targetType is null)
     {
         throw new ArgumentNullException(nameof(targetType));
     }
     return(await Task.Factory.StartNew(() => Container.GetObject(targetType, resolveMode),
                                        CancellationToken.None,
                                        TaskCreationOptions.DenyChildAttach, TaskScheduler.Default));
 }
Exemplo n.º 8
0
        public void Inject(object target, Context context)
        {
            for (int i = 0; i < _dependencyTypes.Length; i++)
            {
                Type        dependencyType = _dependencyTypes[i];
                ResolveMode resolveMode    = _resolveModes[i];
                _invokationArguments[i] = GetDependency(dependencyType, context, resolveMode);
            }

            _methodInfo.Invoke(target, _invokationArguments);
        }
 /// <summary>
 /// Copy a region of a multisampled or compressed resource into a non-multisampled or non-compressed resource.
 /// </summary>
 /// <param name="dstResource">Destination resource.</param>
 /// <param name="dstSubresource">A zero-based index that identifies the destination subresource. Use <see cref="ID3D12Resource.CalculateSubResourceIndex(int, int, int, int, int)"/> to calculate the subresource index if the parent resource is complex.</param>
 /// <param name="dstX">The X coordinate of the left-most edge of the destination region. The width of the destination region is the same as the width of the source rect.</param>
 /// <param name="dstY">The Y coordinate of the top-most edge of the destination region. The height of the destination region is the same as the height of the source rect.</param>
 /// <param name="srcResource">Source resource. Must be multisampled or compressed.</param>
 /// <param name="srcSubresource">A zero-based index that identifies the source subresource.</param>
 /// <param name="format">A <see cref="Format"/> that specifies how the source and destination resource formats are consolidated.</param>
 /// <param name="resolveMode">Specifies the operation used to resolve the source samples.</param>
 public void ResolveSubresourceRegion(
     ID3D12Resource dstResource,
     int dstSubresource,
     int dstX, int dstY,
     ID3D12Resource srcResource,
     int srcSubresource,
     Format format,
     ResolveMode resolveMode = ResolveMode.Decompress)
 {
     ResolveSubresourceRegion_(
         dstResource, dstSubresource, dstX, dstY,
         srcResource, srcSubresource, null,
         format, resolveMode);
 }
Exemplo n.º 10
0
        public object GetObject([NotNull] Type type, ResolveMode resolveMode = ResolveMode.Global)
        {
            if (type is null)
            {
                throw new ArgumentNullException(nameof(type));
            }

            if (!_registeredTypes.ContainsKey(type))
            {
                throw new ArgumentException("Type not registered");
            }

            return(_lifetime.GetObject(type, resolveMode));
        }
Exemplo n.º 11
0
        protected object GetObject(Type type, XStrategy factory, ILifetime lifetime,
                                   ResolveMode resolveMode = ResolveMode.Global)
        {
            if (factory.OnlyOne)
            {
                return(factory.Instance ??= factory.Strategy(lifetime));
            }


            if (resolveMode == ResolveMode.Global)
            {
                return(_instanceLifetime.GetOrAdd(type, _ => factory.Strategy(lifetime)));
            }

            return(factory.Strategy(lifetime));
        }
        public void Inject(object target, Context context)
        {
            for (int i = 0; i < _dependencyTypes.Length; i++)
            {
                Type        dependencyType = _dependencyTypes[i];
                ResolveMode resolveMode    = _resolveModes[i];
                _invocationArguments[i] = GetDependency(dependencyType, context, resolveMode);
            }

            try
            {
                _methodInfo.Invoke(target, _invocationArguments);
            }
            catch (TargetInvocationException invocationException)
            {
                UnityEngine.Debug.LogException(invocationException.InnerException);
            }
        }
        public MethodInjection(MethodInfo info)
        {
            _methodInfo = info;
            ResolveMode methodResolveMode = GetResolveMode(_methodInfo);

            ParameterInfo[] arguments     = _methodInfo.GetParameters();
            int             argumentCount = arguments.Length;

            _dependencyTypes     = new Type[argumentCount];
            _invocationArguments = new object[argumentCount];
            _resolveModes        = new ResolveMode[argumentCount];

            for (int i = 0; i < argumentCount; i++)
            {
                ParameterInfo argument = arguments[i];
                _dependencyTypes[i] = argument.ParameterType;
                ResolveMode resolveMode = GetResolveMode(argument);
                if (resolveMode == ResolveMode.Unspecified)
                {
                    resolveMode = methodResolveMode;
                }
                _resolveModes[i] = resolveMode;
            }
        }
Exemplo n.º 14
0
        private bool?_invokeDisplay(string key, object InputViewModel, ResolveMode resolve_mode, bool is_modeless)
        {
            bool?_result = null;

            //If Thread is not STA
            if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA)
            {
                Thread new_ui_thread = new Thread(() =>
                {
                    IHaleyWindow _hwindow = generateView(key, InputViewModel, resolve_mode);
                    _result = _displayWindow(_hwindow, is_modeless);
                });
                new_ui_thread.SetApartmentState(ApartmentState.STA);
                new_ui_thread.Start();
                new_ui_thread.Join();
            }
            else
            {
                IHaleyWindow _hwindow = generateView(key, InputViewModel, resolve_mode);
                _result = _displayWindow(_hwindow, is_modeless);
            }

            return(_result);
        }
Exemplo n.º 15
0
        public bool?showDialog <ViewModelType>(ViewModelType InputViewModel = null, ResolveMode resolve_mode = ResolveMode.AsRegistered) where ViewModelType : class, IHaleyWindowVM
        {
            string _key = typeof(ViewModelType).ToString();

            return(showDialog(_key, InputViewModel, resolve_mode));
        }
 protected ResolvableNovaMarkUpExtension(PropertyPath path, ResolveMode mode)
     : base(path)
 {
     ResolveMode = mode;
 }
Exemplo n.º 17
0
        public override IHaleyControl generateView(string key, object InputViewModel = null, ResolveMode mode = ResolveMode.AsRegistered)
        {
            try
            {
                //If input view model is not null, then don't try to generate viewmodel.
                IHaleyControl   _view = null;
                IHaleyControlVM _vm   = null;
                if (InputViewModel != null)
                {
                    var _mapping_value = getMappingValue(key);
                    _view = _generateView(_mapping_value.view_type);
                    _vm   = (IHaleyControlVM)InputViewModel;
                }
                else
                {
                    var _kvp = _generateValuePair(key, mode);
                    _view = _kvp.view;
                    _vm   = _kvp.view_model;
                }
                _view.DataContext = _vm;

                return(_view);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 18
0
        public override IHaleyWindow generateView(string key, object InputViewModel = null, ResolveMode mode = ResolveMode.AsRegistered)
        {
            try
            {
                //If input view model is not null, then don't try to generate viewmodel.
                IHaleyWindow   _view = null;
                IHaleyWindowVM _vm   = null;
                if (InputViewModel != null)
                {
                    var _mapping_value = getMappingValue(key);
                    _view = _generateView(_mapping_value.view_type);
                    _vm   = (IHaleyWindowVM)InputViewModel;
                }
                else
                {
                    var _kvp = _generateValuePair(key, mode);
                    _view = _kvp.view;
                    _vm   = _kvp.view_model;
                }
                _view.DataContext = _vm;

                //Enable Haleyobserver so that when view closes, viewmodel event is triggered.
                HaleyObserver CustomOP = new HaleyObserver(_view, _vm);
                CustomOP.subscribe();

                return(_view);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 19
0
 protected ResolvableDataContextListener(PropertyPath path, ResolveMode resolveMode)
     : base(path)
 {
     _resolveMode = resolveMode;
 }
Exemplo n.º 20
0
        public void show(Enum key, object InputViewModel = null, ResolveMode resolve_mode = ResolveMode.AsRegistered)
        {
            string _key = key.getKey();

            show(_key, InputViewModel, resolve_mode);
        }
Exemplo n.º 21
0
 public void show(string key, object InputViewModel = null, ResolveMode resolve_mode = ResolveMode.AsRegistered)
 {
     _invokeDisplay(key, InputViewModel, resolve_mode, is_modeless: true); //This is modeless
 }
Exemplo n.º 22
0
        public void show <ViewModelType>(ViewModelType InputViewModel = null, ResolveMode resolve_mode = ResolveMode.AsRegistered) where ViewModelType : class, IHaleyWindowVM
        {
            string _key = typeof(ViewModelType).ToString();

            show(_key, InputViewModel, resolve_mode);
        }
Exemplo n.º 23
0
        public void show <ViewType>(ResolveMode resolve_mode = ResolveMode.AsRegistered) where ViewType : IHaleyWindow
        {
            string _key = typeof(ViewType).ToString();

            show(_key, null, resolve_mode);
        }
Exemplo n.º 24
0
        public bool?showDialog <ViewType>(ResolveMode resolve_mode = ResolveMode.AsRegistered) where ViewType : IHaleyWindow
        {
            string _key = typeof(ViewType).ToString();

            return(showDialog(_key, null, resolve_mode));
        }
Exemplo n.º 25
0
 public bool?showDialog(string key, object InputViewModel = null, ResolveMode resolve_mode = ResolveMode.AsRegistered)
 {
     return(_invokeDisplay(key, InputViewModel, resolve_mode, is_modeless: false)); //This is modal
 }
Exemplo n.º 26
0
        public ResolveLoad convert(string contract_name, Type contract_parent, ResolveMode mode)
        {
            ResolveLoad _load = new ResolveLoad(mode, this.priority_key, contract_name, this.contract_type, contract_parent, this.concrete_type, this.transient_level);

            return(_load);
        }
Exemplo n.º 27
0
        public bool?showDialog(Enum key, object InputViewModel = null, ResolveMode resolve_mode = ResolveMode.AsRegistered)
        {
            string _key = key.getKey();

            return(showDialog(_key, InputViewModel, resolve_mode));
        }
Exemplo n.º 28
0
 public static void SetResolveMode(DependencyObject obj, ResolveMode value)
 {
     obj.SetValue(ResolveModeProperty, value);
 }
Exemplo n.º 29
0
 public ResolveLoad() : base(null, null, null)
 {
     mode = ResolveMode.AsRegistered;
 }
 public ContentControlDataContextListener(PropertyPath path, ResolveMode resolveMode, bool appendColon)
     : base(path, resolveMode)
 {
     _appendColon = appendColon;
 }