我尝试从xap文件动态加载程序集,如下所示:
AssemblyPart asmPart = new AssemblyPart();
StreamResourceInfo streamInfo = Application.GetResourceStream(new StreamResourceInfo(xapFileStream, "application/binary"), new Uri(source, UriKind.Relative));
Assembly asm = asmPart.Load(streamInfo.Stream);
FrameworkElement element = asm.CreateInstance(className) as FrameworkElement;
然后我尝试加载用户控件MainPage。如果MainPage很简单:
如果
namespace TestApp
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
}
}
没关系。但如果MainPage喜欢:
namespace TestApp
{
public partial class MainPage : UserControl
{
private readonly Dictionary<IWorkbenchWidget, TabControlElement> tabs;
public MainPage()
{
InitializeComponent();
base.Loaded += new RoutedEventHandler(myHandler);
}
}
}
失败了。
那么想知道是否使用Assembly.CreateInstance来创建一个类的实例,对类的任何特殊请求?
答案 0 :(得分:0)
问题似乎在于:
base.Loaded += new RoutedEventHandler(myHandler);
您没有在MainPage中定义名为“myHandler”的事件处理程序(除非您为了简洁而省略了它)。