首页 新闻 会员 周边 捐助

unity配置问题

0
悬赏园豆:50 [已解决问题] 解决于 2012-07-19 17:19

有这么个问题

C# code

    public interface Repository<T> : IRepository<T> where T : class, new()
 {
 }

public class Repository<T> : IRepository<T> where T : class, new()
{

}

public class sendService:Service<go>,IsendService

 { public sendService(IRepository<go> repo) : base(repo)

{

 }

}

 

配置内容

 

这个地方在配置文件里dependency 总是报错,告诉我这个类没法实例化,

 

    <register type="IRepository[]" name="repository" mapTo="Repository[]"> <constructor>
<param name="f">
<dependency name="DbContextFactory">
</dependency>
</param>
</constructor>

</register>
<register type="IsendService" mapTo="sendService">
<constructor>
 <param name="repo">
<dependency name="repository"></dependency>
 </param>
</constructor>
</register>

 

配置到底要怎么办呢?

Godot的主页 Godot | 初学一级 | 园豆:142
提问于:2012-07-19 16:36
< >
分享
最佳答案
0

泛型得带参数啊。

比如 IRepository<> i = new Repository<>(); 这样能编译通过吗?

你的指定具体的泛型参数,例如:

public class GoRepository : Repository<go>{}

<register type="IRepository[go]" name="repository" mapTo="GoRepository">

收获园豆:49
Launcher | 高人七级 |园豆:45050 | 2012-07-19 17:08

额,你别说,编译还真就通过了,看了HANDS-ON LAB 有个开泛型和闭泛型的说法.....你研究一下

Godot | 园豆:142 (初学一级) | 2012-07-19 17:15

额...得了  解决了.....命名空间名字写错了......我捅咕一天了......晕  就你回答....分给你吧....另外,不带参数是可以的,UNITY会在已经注册的TYPE里边自己找的.

Godot | 园豆:142 (初学一级) | 2012-07-19 17:18

@Godot: 

public interface IRepository<T> where T : class, new()
    {
    }

    public class Repository<T> : IRepository<T> where T : class, new()
    {

    }

IRepository<> rep = new Repository<>(); // 这条语句不要说编译,智能提示就会告诉你语法错误。我不知道你咋编译通过的。

Launcher | 园豆:45050 (高人七级) | 2012-07-19 17:26

@程序猿.码农: 在配置文件里边写成开泛型就可以编译通过,UNITY自动装配了.不是在代码里实例化它....代码里肯定是用IOC负责实例对象的.

Godot | 园豆:142 (初学一级) | 2012-07-20 08:59

@Godot: 看来我们在“编译”这个词的理解上有分歧。配置文件是不参与编译的。

Launcher | 园豆:45050 (高人七级) | 2012-07-20 09:36
其他回答(1)
0

你的T是什么啊,是不是要传给 <register type="IRepository[]" name="repository" mapTo="Repository[]"> <constructor>这个里面去啊。<register type="IRepository[]" name="repository" mapTo="Repository[]"> <constructor>没看到这么写的[]

里面你加点东西在试试

收获园豆:1
爱打的小男孩 | 园豆:161 (初学一级) | 2012-07-19 17:18

给你个辛苦分

支持(0) 反对(0) Godot | 园豆:142 (初学一级) | 2012-07-19 17:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册