Beispiel #1
0
        public ContentManager(RazorConfig config)
        {
            if (config == null)
            {
                throw new ArgumentNullException("config");
            }
            config           = config.AsReadonly();
            _contentProvider = new CompositeContentProvider();
            ContentProvider.ContentModified += OnContentModified;
            config.ContentProviders.ToList().ForEach(ctor => AddContentProvider(ctor()));

            _pathBuilder      = new VirtualPathBuilder(config.RootOperator.Path);
            _autoIncludeName  = config.Templates.AutoIncludeName.EmptyAsNull();
            _defaultExtension = config.Templates.DefaultExtension.EmptyAsNull();
            if (_autoIncludeName != null && !_autoIncludeName.Contains(".") && _defaultExtension != null)
            {
                _autoIncludeName = _autoIncludeName + "." + _defaultExtension.TrimStart('.');
            }
            var shared         = config.Templates.SharedLocation.EmptyAsNull();
            var searchPathList = new List <string>();

            if (shared != null)
            {
                searchPathList.Add(GetPathBuilderWithRootOperator(shared).RemoveTrailingSlash());
            }
            _virtualSearchPathList = searchPathList.AsReadOnly();
        }
Beispiel #2
0
        protected virtual void Dispose(bool disposing)
        {
            if (!disposing)
            {
                return;
            }
            var provider = _contentProvider;

            _contentProvider = null;
            if (provider == null)
            {
                return;
            }
            provider.ContentModified -= OnContentModified;
            provider.Dispose();
        }