public object Create(string name, Type type, NamedParameters ctorArgs)
        {
            if (!CanCreate(name, type))
            {
                throw new ArgumentException("Cannot create DataSource from: " + type);
            }

            return(CreateDataSource(name, type, ctorArgs));
        }
Beispiel #2
0
        public NamedParameters GetConstructorArguments()
        {
            if (ConstructorArugments == null)
            {
                return(NamedParameters.Null);
            }

            if (ConstructorArugments.Length % 2 != 0)
            {
                throw new ArgumentException("ConstructorArguments must have even length");
            }

            var args = new NamedParameters();

            for (int i = 0; i < ConstructorArugments.Length; ++i)
            {
                args[ConstructorArugments[i].ToString()] = ConstructorArugments[i + 1];
                i++;
            }

            AddTypedConstructorArugments(args);

            return(args);
        }
 protected abstract object CreateDataSource(string name, Type type, NamedParameters ctorArgs);
 public T Create <T>(string name, NamedParameters ctorArgs)
 {
     return((T)Create(name, typeof(T), ctorArgs));
 }
Beispiel #5
0
 protected virtual void AddTypedConstructorArugments(NamedParameters args)
 {
     // hook for derived classes to add types arguments
 }