标签: unity-container

实体框架+ Unity框架

我开始一个新项目,我需要创建一个项目来实现Entity Framework 4.0和Unity Framework 2.0以及Enterprise Library 5.0.

我是Entity Framework和Unity Framework的新手,并且对如何使用数据库获取正常的Object BO和DAL感到困惑.

有人能指出我在同一个项目中开始的一些简单例子.后来我需要将ASP.NET MVC 2.0用于UI.

我已经看过Julie Lerman的视频实体框架我可以将桌子作为实体获得,但之后我不知道Unity,Enterprise Library将适用于哪里.之后我迷失了.

有人请帮助我.

asp.net-mvc entity-framework enterprise-library unity-container

0
推荐指数
1
解决办法
2630
查看次数

我在哪里放置Unity配置文件?

在3层Windows应用程序中,我将在哪里放置包含统一配置的配置文件?如果它位于前层,那么我是否需要在我的所有前端,业务和数据层项目中引用unity.dlls,以便项目识别IUnityContainer接口等?

我在哪里加载配置容器?它会在前层的主方法或数据层中,还是在需要时加载容器?

如果所有内容都放在前层,那么整个项目并不依赖于前层,如果我将前层从Windows App更改为Web应用程序,那么我必须再次进行统一工作!

c# unity-container

0
推荐指数
1
解决办法
1346
查看次数

无法在列表/ arraylist中生成数组

我需要在arraylist或列表中创建数组,我使用了这个:

List<string[]> OL = new List<string[]>();
string[] OLdata = new string[7];

OLdata[0] = .. ; OLdata[1] = .. OLdata[6] = ..
OL.Add(OLdata);
Run Code Online (Sandbox Code Playgroud)

我可以用它来访问它

    OL[0].GetValue(3) or OL[0][3] ..
Run Code Online (Sandbox Code Playgroud)

再次写入OLdata并将其添加到OL列表中,当我尝试访问数据时

    OL[0][3] ..
Run Code Online (Sandbox Code Playgroud)

我正在获取插入数组的新数据,我显然期待OL [0] [3]OL [1] [3]中的不同值,是什么原因或任何其他建议?

c# list arraylist unity-container

0
推荐指数
1
解决办法
285
查看次数

在MVVM WPF应用程序中的ViewModel之间传递数据

从我的一个ViewModel我有下面的调用,从服务器获取信息.

 List<Customer> listOfCustomers = GetCustomerList(domain,password);
Run Code Online (Sandbox Code Playgroud)

将此信息id listOfcustomers传递给MVVM场景中的另一个ViewModel(CustomerViewModel)的最佳方法是什么.

我需要在这里使用Unity,还是使用事件聚合器发布,如下面的RichardOD所述.

wpf unity-container mvvm

0
推荐指数
1
解决办法
1995
查看次数

如何在Unity中注册用于传递对象实例的辅助类

我有一个场景,我需要使用辅助类注入一个类型的实例.在我们的系统中,我们目前正在使用Unity将该对象注入各个层.

这是我目前拥有的:

container.RegisterInstance<ITest, new Test()>();
Run Code Online (Sandbox Code Playgroud)

但是,我想使用一个可以为我创建实例的辅助类:

container.RegisterInstance<ITest, Helper.GetITestIntance()>();
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection unity-container

0
推荐指数
1
解决办法
271
查看次数

我的上下文是否与我的存储库耦合?

学习实体框架,存储库和IOC,我想要实现的是实现存储库模式,以便更改我的数据源提供程序.

请从开源项目中查看此示例:

namespace MyApp.Domain.Interfaces
{
    public interface IEFContext : IDisposable
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

EFContext(实现IEFContext)

namespace MyApp.Data.Context
{
    public class EFContext : DbContext, IEFContext
    {
        public const string DBConnectionName = @"MyDBName";

        public EFContext() : base(DBConnectionName)      
        {
        }

        public DbSet<Member> Member { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

IMemberRepository

namespace MyApp.Domain.Interfaces.Repositories
{
    public interface IMemberRepository
    {
        Member GetUser(string username);
    }
}
Run Code Online (Sandbox Code Playgroud)

MemberRepository(实现IMemberRepository)

namespace MyApp.Data.Repositories
{
    public class MemberRepository : IMemberRepository
    {
        private readonly EFContext _context;

        public MemberRepository(IEFContext context)
        {
            _context = context as …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework inversion-of-control unity-container repository-pattern

0
推荐指数
1
解决办法
368
查看次数

Unity构造函数注入

我在使用MVVM的wpf应用程序中使用Prism + Unity。我是Prism和Unity的初学者。

我希望能够关闭当前视图。我读过的各种解决方案和文章都指出,做到这一点的最佳方法是从视图模型中进行。但是视图模型需要一个区域管理器对象才能关闭视图。好的,让我们设置构造函数注入。以前从未尝试过,但是关于SO的问题很多。

首先让我解释一下如何将事物连接在一起。我有一个引导程序类,用于处理类型和实例的注册。

这是我的视图模型的注册方式:

container.RegisterType<IViewModel, ViewAccountsViewModel>(new InjectionConstructor(new ResolvedParameter(typeof(RegionManager))));
container.RegisterType<ViewAccountsView>();
Run Code Online (Sandbox Code Playgroud)

这是视图帐户视图的模块:

public class ViewAccountsModule : IModule
{
    private readonly IRegionManager regionManager;
    private readonly IUnityContainer container;

    public ViewAccountsModule(IUnityContainer container, IRegionManager regionManager)
    {
        this.container = container;
        this.regionManager = regionManager;
    }

    /// <summary>
    /// 
    /// </summary>
    public void Initialize()
    {
        regionManager.RegisterViewWithRegion("MainRegion", () => this.container.Resolve<ViewAccountsView>());
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的ViewAccountsView.xaml中,我像这样设置数据上下文:

<Grid.DataContext>
    <vm:ViewAccountsViewModel/>
</Grid.DataContext>
Run Code Online (Sandbox Code Playgroud)

而我的视图模型构造函数:

[InjectionConstructor]
public ViewAccountsViewModel(IRegionManager regionManager)
{
    if (regionManager == null) throw new ArgumentNullException("regionManager");

    this.regionManager = regionManager;
}
Run Code Online (Sandbox Code Playgroud)

编译解决方案时,收到错误消息“ ViewAccountsViewModel”类型不包含任何可访问的构造函数。如果将默认构造函数添加到视图模型中,则会显示该视图,但无法从区域中删除该视图。我收到一个参数null异常。

这是删除视图的代码:

regionManager.Regions["MainRegion"].Remove(regionManager.Regions["MainRegion"].GetView("ViewAccountsView"));
Run Code Online (Sandbox Code Playgroud)

我仍然是IoC和DI的初学者。有什么我想念的吗?

c# wpf prism unity-container mvvm

0
推荐指数
1
解决办法
3407
查看次数

Unity RegisterTypes与程序集通配符

调用container.RegisterTypes时是否可以使用程序集通配符?

即如果我只想从以Foo.Bar开头的Assemblies中注册类,有没有办法做到这一点.所以如果我有Foo.Bar.Test1然后是Foo.Bar.Test2程序集,它会抓住这两个而不必明确引用这些名称?

.net c# unity-container

0
推荐指数
1
解决办法
1665
查看次数

IOC container as mapping resolver

I want to use an IOC container preferably unity as a resolver function lookup

This what I have

 class ParmaterType {}

 class Monkey : ParmaterType {}
 class Handler {virtual void HandleMessage(){}}
 class MonkeyHandler : Handler {}

 class Main
 {
    Dictionary<Type, Type> _Mapper= new> Dictionary<Type, Type >()
    {  { typeof(Monkey) , typeof(MonkeyHandler) } }; 

   public void OnMessage(ParmaterType  type)
    {  
       Handler instance = (Handler)Activator.CreateInstance(_Mapper[type]); 
       instance.HandleMessage(type); 
     } 
 }
Run Code Online (Sandbox Code Playgroud)

and what i want is something like this :

 IocContainer.Register(typeof(Monkey), typeof(MonkeyHandler ))

 public void OnMessage(ParmaterType …
Run Code Online (Sandbox Code Playgroud)

c# ioc-container unity-container

0
推荐指数
1
解决办法
459
查看次数

创建带有统一CTR的DbContext失败

我具有自IdentityDbContext继承的自定义DbContext。类看起来像这样:

public class ReaderContext : IdentityDbContext<IdentityUser>
{
    //DbSets

    public ReaderContext() 
        : base("name=ReaderDb")
    {
        System.Data.Entity.Database.SetInitializer<ReaderContext>(null);
        Database.Initialize(true);
    }
 }
Run Code Online (Sandbox Code Playgroud)

而且当DbContext看起来像这样时,创建存储库(使用ReaderContext)的代码可以正常工作:

container.RegisterType<IRepository, CustomRepository>(new HierarchicalLifetimeManager());
var repo = container.Resolve<IRepository>();
Run Code Online (Sandbox Code Playgroud)

当我向ReaderContext添加另一个构造函数(而不是删除现有构造函数!)时,创建CustomRepository在UnityContainer中不再起作用。

    public ReaderContext(DbConnection connection)
        : base(connection, true)
    {

    }
Run Code Online (Sandbox Code Playgroud)

我需要这样,这样我才能尽力而为。我正在使用Unity容器。我有例外:

2017-08-07 19:02:57.9256:异常:Microsoft.Practices.Unity.ResolutionFailedException:依赖项的解析失败,类型=“ DataAccess.Database.Repositores.IRepository”,名称=“(无)”。发生以下异常:正在解决。异常是:InvalidOperationException-当前类型System.Data.Common.DbConnection是抽象类,无法构造。您是否缺少类型映射? - - - - - - - - - - - - - - - - - - - - - - - - 当时例外情况是,该容器是:

解析DataAccess.Database.Repositores.CustomRepository,(无)(从DataAccess.Database.Repositores.IRepository映射,(无))
解析构造函数DataAccess.Database.Repositores.CustomRepository(DataAccess.Database.ReaderContext上下文)的参数“ context” DataAccess.Database.ReaderContext,(无)解析构造函数的参数“连接” DataAccess.Database.ReaderContext(System.Data.Common.DbConnection连接)解析System.Data.Common.DbConnection,(无)-> System.InvalidOperationException :当前类型System.Data.Common.DbConnection是抽象类,无法构造。您是否缺少类型映射?

为什么添加新的构造函数会破坏统一配置?另外,我尝试从头开始设置统一性,但不能使其正常工作。可能我不知道团结如何运作,所以欢迎您提出任何建议:)

c# entity-framework unity-container

0
推荐指数
1
解决办法
1172
查看次数