我正在跟踪在StackOverflow上找到的示例,一切进行得很好,直到需要注册我的类型为止。
我的Web应用程序在带有Prism和MVVM的Silverlight 4上运行。
该示例使用“ Microsoft.Practices.Unity ”(这是Windows窗体应用程序)
Bootstrapper.cs
protected override void ConfigureContainer()
{
base.ConfigureContainer();
Container.RegisterType<IApplicationMenuRegistry, MenuRegistry>();
Container.RegisterType<IApplicationCommands, ApplicationCommands>();
Container.RegisterType<ShellViewModel, ShellViewModel>(new Microsoft.Practices.Unity.ContainerControlledLifetimeManager());
}
我的正在使用: Microsoft.Practices.Unity.Silverlight (网络),并引发以下错误:
The non-generic method 'Microsoft.Practices.Unity.IUnityContainer.RegisterType(...) cannot be used with type arguments.
而且
RegisterType<>
构造函数对我不可见。我必须注册哪些替代品?
最佳答案
我正在使用Unity for Silverlight,还没有出现此问题。
根据http://unity.codeplex.com/workitem/8205的帖子,您需要添加“using Microsoft.Practices.Unity;”。到文件。 Resolve的通用版本是扩展方法,您需要引入 namespace 才能使用它们。
显然,ReSharper可能认为using语句不是必需的,并可能将其删除。
希望能有所帮助。
关于mvvm - RegisterType <>在Silverlight上不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4017929/