概述
如果要实例化的类只有一个构造函数, 则使用方法很简单使用方法如下:
其中配置文件为
如果DatabaseLogger类中的有两个构造函数, 代码如下
则Unity自动使用参数最多的构造函数进行创建对象, 会抛出以下异常:
如果您想让它使用无参的构造函数创建, 则要使用[InjectionConstructor]特性进行修饰无参的构造函数,
若您想使用带参数的构造函数创建对象, 除了在构造函数上使用[InjectionConstructor]外, 还要在创建时传递参数,代码如下
1
2
3
4
5
6
7
|
using (IUnityContainer container =
new
UnityContainer())
{
UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection(
"unity"
);
section.Configure(container);
//...
ILogger logger = container.Resolve<ILogger>(
"DatabaseLogger"
);
return
logger;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?xml version=
"1.0"
encoding=
"utf-8"
?>
<configuration>
<configSections>
<section name=
"unity"
type=
"Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration"
/>
</configSections>
<unity>
<containers>
<container>
<types>
<type type=
"Bery.ILogger, UnityStudy"
mapTo=
"Bery.DatabaseLogger, UnityStudy"
name=
"DatabaseLogger"
>
</type>
</types>
</container>
</containers>
</unity>
</configuration>
|
1
2
3
4
5
6
|
public DatabaseLogger()
{
}
public DatabaseLogger(string name)
{
}
|
1
2
3
|
Microsoft.Practices.Unity.ResolutionFailedException: Resolution of the dependency failed, type =
"Bery.ILogger"
, name =
"DatabaseLogger"
.
Exception occurred
while
:
while
resolving.
Exception is: InvalidOperationException - The type String cannot be constructed. You must configure the container to supply
this
value.
|
1
2
3
4
|
[InjectionConstructor]
public DatabaseLogger()
{
}
|
1
2
3
4
5
6
7
8
9
10
|
using (IUnityContainer container =
new
UnityContainer())
{
UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection(
"unity"
);
section.Configure(container);
ILogger logger = container.Resolve<ILogger>(
"DatabaseLogger"
,
new
ParameterOverrides{
{
"name"
,
"logName"
}
});
return
logger;
|
引用地址:http://unity3d.9tech.cn/news/2014/0208/39766.html
转载于:https://www.cnblogs.com/SimonGao/p/3835284.html
最后
以上就是花痴乐曲为你收集整理的Unity中使用多构造函数的全部内容,希望文章能够帮你解决Unity中使用多构造函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复