关于Caliburn.Micro框架的IOC类的GetInstance的实现问题

玉行天下 2019-01-31 05:03:58
我最近遇到Caliburn.Micro的IOC时,想查看一下源代码。遇到如下代码并不是很明白
public static class IoC {

public static Func<Type, string, object> GetInstance = (service, key) => { throw new InvalidOperationException("IoC is not initialized."); };


public static Func<Type, IEnumerable<object>> GetAllInstances = service => { throw new InvalidOperationException("IoC is not initialized."); };

public static Action<object> BuildUp = instance => { throw new InvalidOperationException("IoC is not initialized."); };

public static T Get<T>(string key = null) {
return (T)GetInstance(typeof(T), key);
}

}
这里的get方法用来获取类的实例,而get方法调用了GetInstance方法,但是GetInstance方法使用了匿名函数和Lambda 表达式初始化了。然后这个GetInstance其实会在一个BootstrapperBase类里面进行赋值,并且是虚函数,可以自己重写。我的问题就是,就算可以自定义或者必须自定义这个GetInstance函数,这里的匿名函数也会执行,抛出错误。我不明白,这个匿名函数如何在初始化后,不执行的?求指导啊。
...全文
257 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
面向内置式永磁同步电机的MTPA效率优化与双闭环矢量控制对比仿真研究(Simulink仿真实现)内容概要:本文针对内置式永磁同步电机(IPMSM)的控制策略,基于Matlab/Simulink仿真平台,对比研究了最大转矩电流比(MTPA)效率优化控制与双闭环矢量控制两种方法。研究内容涵盖了在不同工况下两种控制策略的动态响应特性、效率表现及系统稳定性,重点分析了MTPA控制在提升电机效率方面的优势,以及双闭环矢量控制在精确转矩响应和宽速域运行中的性能特点。通过搭建详细的电机模型和控制算法模块,仿真验证了各自控制策略的可行性与有效性,为高性能电机驱动系统的设计与优化提供了仿真依据和技术参考。; 适合人群:具备电机控制、电力电子或自动化等相关专业背景,熟悉Matlab/Simulink仿真工具,从事电机驱动系统研发的工程师及研究生。; 使用场景及目标:①为内置式永磁同步电机的高效控制策略选型提供理论与仿真支持;②深入理解MTPA控制与矢量控制的核心原理、实现方法及性能差异;③应用于新能源汽车、工业伺服等对电机效率和动态性能有高要求的领域。; 阅读建议:在学习过程中应结合Simulink模型,仔细分析各控制模块的参数设置与信号流向,并通过改变负载、转速等条件进行仿真测试,对比分析两种控制策略的输出波形,以加深对理论知识的理解和工程应用的认知。

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧