public static void AddImageProvider <T>(string basePath) where T : ImageProviderBase { if (string.IsNullOrEmpty(basePath)) { throw new ArgumentException("Base path may not be null or empty. Use SetDefaultImageProvider<T> instead."); } if (ImageProviders.ContainsKey(basePath)) { throw new ArgumentException("Base path already exists in collection."); } var objectCreator = ObjectCreation.GetCreator <T, ImageProviderBase>(); ImageProviders.Add(basePath, objectCreator); }
internal static IExpression Create(TokenType tokenType, SourcePosition pos, object value) { var exprType = Instance[tokenType]; if (typeCache.ContainsKey(exprType)) { return((IExpression)typeCache[exprType](pos, value)); } else { var creator = ObjectCreation.GetCreator(exprType, new Type[] { typeof(SourcePosition), value.GetType() }); typeCache.Add(exprType, creator); return((IExpression)creator(pos, value)); } //return (IExpression)Activator.CreateInstance(Instance[tokenType], pos, value); }
public static void SetDefaultImageProvider <T>() where T : ImageProviderBase { DefaultImageProvider = ObjectCreation.GetCreator <T, ImageProviderBase>(); }