0
Giggles
이라는 이름의 Foobar
클래스가 있습니다. 동일한 네임 스페이스에있는 또 다른 클래스는 Monkey
입니다. 둘 다 같은 모임에있어.런타임에 내부 생성자를 사용하여 클래스를 인스턴스화합니다.
Monkey
은 다음과 같습니다
Monkey
유일한 생성자입니다
namespace Foobar {
public class Monkey {
internal Monkey() { }
...
.
이제 Giggles
의 메서드 내에서 클래스 이름이 포함 된 문자열을 사용하여 Monkey
을 인스턴스화하려고합니다.
이 작동하지 않습니다
var className = "Foobar.Monkey";
var monkley = Assembly.GetExecutingAssembly().CreateInstance(className);
이 예외 메시지를 제공합니다 : 예외 유형 System.MissingMethodException
의와 "Constructor on type 'Foobar.Monkey' not found."
.
아이디어가 있으십니까?
'new Monkey()'에 무슨 문제가 있습니까? – BradleyDotNET
값이 클래스 이름 인 문자열에서 '원숭이'를 만듭니다. – core
하나 또는 몇 개의 특정 어셈블리에서 '원숭이'가 필요하면 [InternalsVisibleTo] (http://geekswithblogs.net/jwhitehorn/archive/2007/11/09/116750.aspx)를 사용할 수 있습니다. – Jonesopolis