Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > плагины


Автор: bend0r 26.10.2005, 02:41
пытаюсь разобратся в сабже, но пока безуспешно.
предположим есть такая простенькая ДЛЛешка
Код

using System;
namespace test
{
    public interface IPlugin
    {
        int Pub();
    }

    public class Plug:IPlugin
    {
        public int Pub()
        {
            int a = 5;
            return a;
        }
    }
}


и программка
Код

using System.IO;
using System.Reflection;
using System.Collections;

namespace ConsoleApplication1
{

    public interface IPlugin
    {
        int Pub();
    }

    class Class1
    {
        [STAThread]
        static void Main(string[] args)
        {
            FileInfo fi = new FileInfo("test.dll");
            string pluginFile = fi.FullName;
            IPlugin plug;
            Assembly ass = null;
            ass = Assembly.LoadFrom(pluginFile);
            Type obj;
            obj = ass.GetType("test.Plug");
            plug = (IPlugin)Activator.CreateInstance(obj);


        }
    }
}


Выдает исключение Unhandled Exception: System.InvalidCastException: Specified cast is not valid.
smile
чего не так? и как надо?

Автор: Exception 26.10.2005, 06:56
ты два раза объявляешь ИПлагин, он считает их разными. создай отдельно библиотеку с интерфейсам, а прога и плаги пусть на неё ссылаются

Автор: bend0r 26.10.2005, 10:10
Run-time error Спасиба, разобрался.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)