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);
        }
예제 #2
0
        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>();
 }