Hirdetés

Keresés

Új hozzászólás Aktív témák

  • ArchElf

    addikt

    válasz yash #803 üzenetére

    Kicsit magyarabbul :)
    A meghívó osztály:

    class Gyümölcsszedő
    {
    static void Main(string[] args)
    {
    Console.WriteLine(Leszed("Alma.dll"));
    Console.WriteLine(Leszed("Körte.dll"));
    Console.WriteLine(Leszed("Cseresznye.dll"));
    Console.WriteLine(Leszed("Dió.dll"));
    }

    static string Leszed(string GyümölcsFa)
    {
    try
    {
    Assembly asm = Assembly.LoadFrom(GyümölcsFa);
    IGyümölcs gyümölcs = (IGyümölcs)asm.CreateInstance(asm.GetTypes()[0].FullName);
    return gyümölcs.Megkóstol();
    }
    catch
    {
    return string.Format("A [{0}] nem létező gyümölcsfa!", GyümölcsFa);
    }
    }

    Az Interfész:

    public interface IGyümölcs
    {
    string Megkóstol();
    }

    A dinamikusan linkelt dll-ek:
    Alma.dll

    public class Cseresznye : IGyümölcs
    {
    public string Megkóstol()
    {
    return "A Cseresznye kukacos volt... :(";
    }
    }

    Körte.dll

    public class Körte : IGyümölcs
    {
    public string Megkóstol()
    {
    return "A Körte éretlen volt... :(";
    }
    }

    Cseresznye.dll

    public class Cseresznye : IGyümölcs
    {
    public string Megkóstol()
    {
    return "A Cseresznye kukacos volt... :(";
    }
    }

    A kimenet:

    C:\temp\Developer\Gyümölcsszedő\Gyümölcsszedő\bin\Release>Példaprogram.exe
    Az Alma finom érett volt! :)
    A Körte éretlen volt... :(
    A Cseresznye kukacos volt... :(
    A [Dió.dll] nem létező gyümölcsfa!

    AE

Új hozzászólás Aktív témák