Digg StumbleUpon LinkedIn YouTube Flickr Facebook Twitter RSS Reset

Exemple de ‘System.Activator’: non édité

Charger,une,Assemblée,avec,un,nom
{filelink=17558}

using System;
using System.Reflection;
 
class AbstractFactory
{
    public IReflect CreateObject(string classname)
    {
        IReflect objreflect;
        try
        {
            System.Type oType = System.Type.GetType(classname,true);
 
            objreflect = (IReflect)System.Activator.CreateInstance(oType);
        }
        catch(TypeLoadException e)
        {
            throw new InvalidOperationException("Type could " +
                "not be created. Check innerException " +
                "for details", e);
        }
 
        return objreflect;
    }
};
 
public interface IReflect
{
    string Name { get; }
};
 
class Reflect1 : IReflect
{
    public string Name
    {
        get { return "Reflect 1"; }
    }
};
 
class Reflect2 : IReflect{
    public string Name {
        get { return "Reflect 2"; }
    }
}
 
class AbstractFactoryApp
{
    static void Main(string[] args) {
        callReflection(args[0]);
    }
 
    static void callReflection(string strClassName) {
        IReflect objReflect;
 
        AbstractFactory objFactory = new AbstractFactory();
 
        try
        {
            objReflect = objFactory.CreateObject(strClassName);
            Console.WriteLine("You constructed a {0} object",objReflect.Name);
        } catch(Exception e) {
            Console.WriteLine("ERROR: {0}
{1}", e.Message, (null == e.InnerException ? "" : e.InnerException.Message));
        }
    }
}

No comments yet.

Leave a Comment