問題 - プラグインの開発を試みていますが、A が B を実装しているにもかかわらず、オブジェクト A をオブジェクト B にキャストしようとする場合を除いて、すべてうまくいっています。
インターフェース:
namespace DynamicApplications
{
    public interface IPlugIn
    {
        string Name { get; set; }
        IPlugInHost myHost { set; }
        void Show();
    }
    public interface IPlugInHost
    {
        bool Register(IPlugIn plug);
    }
}
実装するクラスIPlugIn
namespace plugInOne
{
    class PlugIn : IPlugIn
    {
        IPlugInHost _myHost;
        public string Name
        {
            get
            {
                return "Plug-In One";
            }
            set
            {
            }
        }
        public IPlugInHost myHost
        {
            set
            {
                _myHost = value;
            }
        }
        public void Show()
        {
        }
    }
}
そして今、インスタンス化のためのコード:
        String path = Application.StartupPath;
        string[] assemblyNames = Directory.GetFiles(path, "*.dll");
        plugs = new IPlugIn[assemblyNames.Length];
        for(int i = 0; i < assemblyNames.Length; i++)
        {
            string Name = assemblyNames[i];
            Name = Name.Substring(Name.LastIndexOf("\\") + 1, Name.Length - Name.LastIndexOf("\\") - 1);
            Name = Name.Remove(Name.LastIndexOf(".dll"));
            assemblyNames[i] = Name;
        }
        for (int i = 0; i < assemblyNames.Length; i++)
        {
            Assembly DLL = Assembly.Load(assemblyNames[i]);
            if(DLL != null)
            {
                try
                {
                    Object p = Activator.CreateInstance(DLL.GetType(assemblyNames[i] + ".PlugIn"));
                    if (p is DynamicApplications.IPlugIn)
                    {
                        MessageBox.Show("YES!!!!");
                    }
                    else
                    {
                        MessageBox.Show("no>?>?>>><<?????");
                    }
                    plugs[i] = (IPlugIn)p;
                }
                catch(Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
p実際にインスタンス化され、アクセス可能であることをデバッガーが示していることに注意してください。
アプリケーションは常にヒットしますMessageBox.Show("no>?>?>>><<?????");
助けてください
エイデン
編集
P のタイプ:
 また
また

まだplugInOne.PlugInはIPlugInを実装しています