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(); }
protected virtual void Dispose(bool disposing) { if (!disposing) { return; } var provider = _contentProvider; _contentProvider = null; if (provider == null) { return; } provider.ContentModified -= OnContentModified; provider.Dispose(); }