デスクトップアプリケーションで、インターフェイスクラスの関数を使用する際に問題が発生しています。C#のインターフェイスクラス
私はプラグインを実行するため、このような機能を持っているIMFDBAnalyserPluginクラスはインターフェースであり、この
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MFDBAnalyser
{
public class IMFDBAnalyserPlugin
{
void ExecutePlugin();
}
}
のような私はMFDBAnalyserのエラーを取得していたプロジェクトをビルド上のコードが含まれています
public static string ExecutePugin(string PluginName, string ConnectionString)
{
//ToDo: Get the plugin dll in the memory in a different appdomain. call RunAnalysis method of that
//ToDo: shift the primary key checking method to inside the plugin and return the result back.
//Loads the IMFDBAnalyserPlugin.exe to the current application domain.
AppDomain.CurrentDomain.Load("IMFDBAnalyserPlugin");
// Load the plugin's assembly to the current application doamin.
Assembly oAssembly = AppDomain.CurrentDomain.Load(PluginName);
// This block of code will execute the plugin's assembly code.
foreach (Type oType in oAssembly.GetTypes())
{
if (oType.GetInterface("IMFDBAnalyserPlugin") != null)
{
object oPlugin = Activator.CreateInstance(oType, null, null);
((MFDBAnalyser.IMFDBAnalyserPlugin)oPlugin).ExecutePlugin();
}
}
return string.Empty;
}
.IMFDBAnalyserPlugin as
エラー1タイプ名 'IMFDBAnalyserPlugin'は型 'MFDBAnalyser.MFDBAnalyser' D内に存在する:プロジェクト\ Mindfire \ GoalPlan \ MFDBAnalyser \ MFDBAnalyser \ PluginManager.cs \ 57 107 MFDBAnalyser
は
誰かが私にあなたがusingsでMFDBAnalyser
含めています
C#には 'interface class'はなく、' interface'や 'class'だけがあります。私は 'IMFDBAnalyserPlugin'インターフェースであるべきだと思います。さもなければ、それはコンパイルされません。 –
...ちょうど参考までに、それはインターフェイスではありません... –
'IMFDBAnalyserPlugin'は、' abstract'または 'interface'としてマークする必要があるためコンパイルされません - 同じプロジェクトの' MFDBAnalyser'ですあなたの 'PluginManager'?そうでなければ 'MFDBAnalyser'を含むアセンブリが最新であることを確かめますか? – Justin