コード例 #1
0
        public ISparkExtension CreateExtension(VisitorContext context, ElementNode node)
        {
            if(_serviceProvider==null)
            {
              return null;
            }
            var componentFactory = (IViewComponentFactory)_serviceProvider.GetService(typeof(IViewComponentFactory));
            if (componentFactory == null || componentFactory.Registry == null)
                return null;

            ViewComponentInfo viewComponentInfo;
            lock (_cachedViewComponent)
            {
                if (!_cachedViewComponent.TryGetValue(node.Name, out viewComponentInfo))
                {
                    if (componentFactory.Registry.HasViewComponent(node.Name))
                    {
                        viewComponentInfo = new ViewComponentInfo(componentFactory.Create(node.Name));
                        _cachedViewComponent.Add(node.Name, viewComponentInfo);
                    }
                    else
                    {
                        _cachedViewComponent.Add(node.Name, null);
                    }
                }
            }

            if (viewComponentInfo != null)
            {
                return new ViewComponentExtension(node, viewComponentInfo);
            }

            return null;
        }
コード例 #2
0
        public ISparkExtension CreateExtension(VisitorContext context, ElementNode node)
        {
            if (_serviceProvider == null)
            {
                return(null);
            }
            var componentFactory = (IViewComponentFactory)_serviceProvider.GetService(typeof(IViewComponentFactory));

            if (componentFactory == null || componentFactory.Registry == null)
            {
                return(null);
            }

            ViewComponentInfo viewComponentInfo;

            lock (_cachedViewComponent)
            {
                if (!_cachedViewComponent.TryGetValue(node.Name, out viewComponentInfo))
                {
                    if (componentFactory.Registry.HasViewComponent(node.Name))
                    {
                        viewComponentInfo = new ViewComponentInfo(componentFactory.Create(node.Name));
                        _cachedViewComponent.Add(node.Name, viewComponentInfo);
                    }
                    else
                    {
                        _cachedViewComponent.Add(node.Name, null);
                    }
                }
            }

            if (viewComponentInfo != null)
            {
                return(new ViewComponentExtension(node, viewComponentInfo));
            }

            return(null);
        }
コード例 #3
0
ファイル: ViewComponentVisitor.cs プロジェクト: Eilon/spark
 public ViewComponentVisitor(ChunkBuilderVisitor chunkBuilderVisitor, ViewComponentInfo info)
 {
     this.chunkBuilderVisitor = chunkBuilderVisitor;
     this.info = info;
     bodyChunks = chunkBuilderVisitor.Chunks;
 }
コード例 #4
0
ファイル: ViewComponentExtension.cs プロジェクト: Eilon/spark
 public ViewComponentExtension(ElementNode node, ViewComponentInfo info)
 {
     this.node = node;
     this.info = info;
 }
コード例 #5
0
 public ViewComponentExtension(ElementNode node, ViewComponentInfo info)
 {
     this.node = node;
     this.info = info;
 }
コード例 #6
0
 public ViewComponentVisitor(ChunkBuilderVisitor chunkBuilderVisitor, ViewComponentInfo info)
 {
     this.chunkBuilderVisitor = chunkBuilderVisitor;
     this.info  = info;
     bodyChunks = chunkBuilderVisitor.Chunks;
 }