Esempio n. 1
0
        /// <summary>
        /// Adds a dependency to the group.
        /// </summary>
        /// <param name="type">Dependency .NET type.</param>
        /// <param name="name">Dependency name.</param>
        public void Dependency(Type type, string name)
        {
            Declaration declaration = Scope.Declare(type, name);
            var         dependency  = new DependencyElement(declaration, Scope.Declarations, type);

            declaration.Target = dependency;
            _dependencies.Add(dependency);
        }
Esempio n. 2
0
        /// <summary>
        /// Creates a dependency element.
        /// </summary>
        /// <param name="declaration">Declaration that references the dependency.</param>
        /// <param name="serviceType">Type of the service that the dependency represents.</param>
        /// <returns>Created element.</returns>
        public static DependencyElement Dependency(Declaration declaration, Type serviceType)
        {
            if (declaration == null)
            {
                throw new ArgumentNullException(nameof(declaration), "Dependency declaration not provided");
            }
            if (serviceType == null)
            {
                throw new ArgumentNullException(nameof(serviceType), "Dependency type not provided");
            }

            var element = new DependencyElement(declaration, serviceType);

            declaration.Target = element;
            return(element);
        }
Esempio n. 3
0
        protected virtual Dependency GetDependency(DependencyElement dependencyElement)
        {
            var dependency = new Dependency
            {
                Check       = dependencyElement.Check,
                DownloadUrl = dependencyElement.DownloadUrl,
                Enabled     = dependencyElement.Enabled,
                Explanation = dependencyElement.Explanation,
                InfoUrl     = dependencyElement.InfoUrl,
                Category    = dependencyElement.Category,
                ScriptName  = dependencyElement.ScriptName,
                Title       = dependencyElement.Title,
                Settings    = dependencyElement.Settings
            };

            return(dependency);
        }
Esempio n. 4
0
        public IEntity CreateWithAttributeCollection
        (
            bool isLeft,
            IEntity attributeCollection,
            IEntity functionalDependency
        )
        {
            var dependencyElement = new DependencyElement
            {
                IsLeft = isLeft,
                AttributeCollection = _dependencyElementContext.AttributeCollections.Find
                                      (
                    attributeCollection.Id
                                      ),
                FunctionalDependency = _dependencyElementContext.FunctionalDependencies.Find
                                       (
                    functionalDependency.Id
                                       )
            };

            _dependencyElementContext.DependencyElements.Add(dependencyElement);
            _dependencyElementContext.SaveChanges();
            return(dependencyElement);
        }
Esempio n. 5
0
 protected internal virtual void VisitDependency(TContext context, DependencyElement element)
 {
 }
 /// <summary>
 ///     매개 변수에 대한 역직렬화를 수행합니다.
 /// </summary>
 /// <param name="reflectionName">매개 변수의 리플랙션 수준의 이름입니다.</param>
 /// <param name="element">	컨테이너 요소입니다. </param>
 /// <returns>IoC 컨테이너가 제공하는 매개 변수에 대한 객체 입니다.</returns>
 protected abstract object ResolveParamOfDependencyElement(string reflectionName, DependencyElement element);
        /// <summary>
        ///     매개 변수에 대한 역직렬화를 수행합니다.
        /// </summary>
        /// <param name="reflectionName">매개 변수의 리플랙션 수준의 이름입니다.</param>
        /// <param name="element">	컨테이너 요소입니다. </param>
        /// <returns>IoC 컨테이너가 제공하는 매개 변수에 대한 객체 입니다.</returns>
        protected override object ResolveParamOfDependencyElement(string reflectionName, DependencyElement element)
        {
            DynamicParametersDelegate @delegate = (kernel, d) =>
            {
                if (element.key == null)
                {
                    d[reflectionName] = kernel.Resolve(Type.GetType(element.typeOfContract));
                }
                else
                {
                    d[reflectionName] = kernel.Resolve(element.key, Type.GetType(element.typeOfContract));
                }
            };

            return(@delegate);
        }
 /// <summary>
 ///     매개 변수에 대한 역직렬화를 수행합니다.
 /// </summary>
 /// <param name="reflectionName">매개 변수의 리플랙션 수준의 이름입니다.</param>
 /// <param name="element">	컨테이너 요소입니다. </param>
 /// <returns>IoC 컨테이너가 제공하는 매개 변수에 대한 객체 입니다.</returns>
 protected override object ResolveParamOfDependencyElement(string reflectionName, DependencyElement element)
 {
     Debug.WriteLine(element.typeOfContract);
     return(new ResolvedParameter(Type.GetType(element.typeOfContract), element.key));
 }
Esempio n. 9
0
 /// <summary>
 /// Adds a dependency element to the group element.
 /// </summary>
 /// <param name="element">Element to add.</param>
 public void Dependency(DependencyElement element)
 {
     _dependencies.Add(element);
 }