我为教育目的创建了小型便携式库(参考,目标:Windows、Windows 8、Windows Phone 7.5)。我决定在我的小型 Windows 8 Metro 风格应用程序中使用它。不幸的是,当我从库中调用方法时,会引发异常:
应用程序调用了为不同线程编组的接口。
在以下行:
return Activator.CreateInstance(outputType, constructorArguments.ToArray());
(解决方法)outputType是typeof(ClassFromMyMetroStyleApp)。库作为 dll 引用添加到项目中。
我能做些什么来解决这个问题?
编辑:方法是从 Metro Style App 解决方案中的 UnitTest 调用:
[TestClass]
public class ResolvingTypesTests
{
/// <summary>
/// The school context interface test.
/// </summary>
[TestMethod]
public void SchoolContextTest()
{
var schoolContext = TypeService.Services.Resolve<ISchoolContext>();
Assert.AreEqual(typeof(SchoolCollection), schoolContext.GetType());
}
}
其中TypeService是静态类,Services是 IResolvable 类型的静态属性(接口由库提供)。
服务属性:
/// <summary>
/// The resolvable.
/// </summary>
private static IResolvable resolvable;
/// <summary>
/// Gets the type services.
/// </summary>
public static IResolvable Services
{
get
{
if (resolvable == null)
{
var builder = new ContainerBuilder();
builder.Register();
resolvable = builder.Build();
}
return resolvable;
}
}