Unity中使用多构造函数(转)
如果要实例化的类只有一个构造函数, 则使用方法很简单使用方法如下:
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>
|
如果DatabaseLogger类中的有两个构造函数, 代码如下
1
2
3
4
5
6
|
public DatabaseLogger()
{
}
public DatabaseLogger(string name)
{
}
|
则Unity自动使用参数最多的构造函数进行创建对象, 会抛出以下异常:
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.
|
如果您想让它使用无参的构造函数创建, 则要使用[InjectionConstructor]特性进行修饰无参的构造函数,
1
2
3
4
|
[InjectionConstructor]
public DatabaseLogger()
{
}
|
若您想使用带参数的构造函数创建对象, 除了在构造函数上使用[InjectionConstructor]外, 还要在创建时传递参数,代码如下
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/chinadeveloper/p/6184307.html
Unity中使用多构造函数(转)相关推荐
- 关于Unity中的UGUI优化,你可能遇到这些问题
一.界面制作 Q1:UGUI里的这个选项 ,应该是ETC2拆分Alpha通道的意思,但是在使用中并没起作用?请问有没有什么拆分的标准和特别要求呢? 据我们所知,alpha split 的功能最初只对 ...
- ugui unity 取消选择_关于Unity中的UGUI优化,你可能遇到这些问题
关键字 界面制作 网格重建 界面切换 加载相关 字体 一.界面制作 Q1:UGUI里的这个选项 ,应该是ETC2拆分Alpha通道的意思,但是在使用中并没起作用?请问有没有什么拆分的标准 ...
- Unity中的矩阵含义
Unity中的矩阵含义 本人第一次写博文,不足的地方请大家指出来,我不会详解它的计算是什么样的,因为同类文章有很多,这个如果读者感兴趣可以自己学习一下相关的手册和知识. 什么是矩阵 简单的说,矩阵就是 ...
- 在Unity中创建基于Node节点的编辑器 (二) 窗口序列化
孙广东 2018.5.13 csdn 的产品 , 真垃圾, 不想吐槽了, 文章保存就丢! 没办法 . 怎么不满意, 还是得继续用, 哎~~~ 第二部分 在Unity中序列化基于节点的 ...
- Unity中一些小技巧
在unity中有一些小技巧,不能像人物的移动,攻击等有好几种方式可以用来单独成章,因此就把一些内容比较少,但是比较重要的内容放在一起合成一章,内容将会持续更新 1.人物死亡动画的播放:人物死亡后,需要 ...
- Unity中的GUI编程
原文地址 在这篇文章中我将给读者介绍Unity中的图形用户界面(GUI)编程.Unity有一个非常强大的GUI脚本API.它允许你使用脚本快速创建简单的菜单和GUI. 简介 Unity提供了使用脚本创 ...
- Unity中的Delegate
详解Unity中的委托与事件 阅读目录 0x00 前言 0x01 从观察者模式说起 0x02 向Unity3D中的SendMessage和BroadcastMessage说拜拜 0x03 认识回调函数 ...
- 使用新的输入系统在 Unity 中构建第三人称控制器
如果你随机挑选几款游戏,每款游戏可能会有不同的艺术风格和机制.不同的故事,甚至根本没有故事,但它们都有一个共同点:所有游戏都需要读取和处理输入来自键盘.鼠标.游戏手柄.操纵杆.VR 控制器等设备. 构 ...
- Unity中游戏存档方式
##游戏存档 ####在Unity中游戏存档有如下四种方式: PlayerPrefs c#序列化 XML序列化 Json **原文链接:**http://blog.csdn.net/a23765363 ...
最新文章
- 将数组A中的内容和数组B中的内容进行交换(数组一样大)
- Entity Framework的启动速度优化
- URL和URI的区别 【转】
- C语言的特点与执行程序基本步骤
- Android面试题目之四: 归并排序
- ROS知识【12】:用户的功能包覆盖系统功能包
- xml文件转换成图片_如何把pdf文件转换成图片?
- 创建 linuxrc 文件
- 60级怀旧服最新服务器人口排名,魔兽世界怀旧服10月最新人口普查详情 各大服务器阵营详细比例...
- 【欢迎大家一起交流讨论】关于Word的自动检测修改--论文格式修正系统(毕业设计)...
- java sts安装步骤_下载并安装Java开发工具STS
- C# 后端代码中使用事务
- 4.3.2 信道编码 ——卷积码
- ASO优化方法_获取ASO关键词指数接口
- win10分辨率设置_雷电模拟器如何设置分辨率
- 最小割集stoer_wagner算法
- PS 渐变工具(锥形【线性渐变】和圆形【径向渐变】)
- USACO 2019 February Contest Platinum T3: Mowing Mischief
- vs2022 E1696 无法打开 源 文件 “string.h“
- javacv+远程视频直播+音视频录制+视频抓取
热门文章
- Android JNI学习(六)——Java与Native实战演习
- url中找出IP地址
- linux kernel 下的hash 和链表 应用
- Linux内核小笔记:spin_lock锁内不能使用sleep休眠
- mysql ddl备份_MySQL 常用DDL执行方式总结
- 【java】java 分支预测 Java处理排序后的数组比没有排序的快
- 【Flink】Flink 实现 End to End 的 EXACTLY_ONCE
- 【Elasticsearch】解决Elasticsearch HTTP方式查询报SocketTimeoutException的问题 Connection reset by peer
- 【java】高并发之限流 RateLimiter使用
- 【Druid】Druid简介