은 플러그 인이 PlugIn.dll로 끝나는 콘솔 응용 프로그램을 만들었습니다. 은 dll 어셈블리를로드하고 PlugIn.dll에서 plugInClass의 메서드를 작성합니다. write 메서드가 포함 된 IWrite라는 인터페이스를 만들었습니다. 'ConsolePlugIn.IWrite'를 입력 유형 'HPlugIn.plugInClass'의 개체를 캐스팅 할 수 없습니다플러그인 응용 프로그램에서 캐스팅 오류가 발생했습니다.
: 아래 주어진 콘솔 응용 프로그램을 실행 한 후, 에러를 제공합니다. 여기
여기
using System;
using System.IO;
using System.Reflection;
namespace ConsolePlugIn
{
interface IWrite
{
void write();
}
class Program
{
static void Main(string[] args)
{
foreach (string s in Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*PlugIn.dll"))//getting plugins in base directory
{
Assembly aWrite = Assembly.LoadFrom(s);
Type tWrite = aWrite.GetType("HPlugIn.plugInClass");
IWrite click = (IWrite)Activator.CreateInstance(tWrite);//giving casting error
click.write();
}
}
}
}
는 플러그인 DLL 파일
using System;
namespace HPlugIn
{
interface IWrite
{
void write();
}
public class plugInClass : IWrite
{
public void write()
{
Console.Write("High from plugInClass");
}
}
}
이 캐스팅 오류에 대한 어떤 생각이 내 코드입니다 [주요 응용 프로그램] .. 콘솔 응용 프로그램에 대한 내 코드? 미리 감사드립니다.
오 ... 그래서 d 인터페이스의 ID는 dll과 exe..right에 동일해야합니다. – Anirudha
@Anirudha 이것은 맞습니다. – dasblinkenlight