我正在使用托管可扩展性框架 (MEF) 学习 .Net 中的可插拔架构。 我在网上看到了示例代码,但是当我尝试实现它时,我一度卡住了。
代码使用:
var catalog = new AttributedAssemblyPartCatalog(Assembly.GetExecutingAssembly());
var container = new CompositionContainer(catalog.CreateResolver());
此 var
在 C# 3.0 上可用,而我在 C# 2.0 中编码。
以上两种说法的替代方案是什么?如何使用 VS 2005 让它们在 c# 2.0 中工作?
我试过这个 bt 它现在说
错误 1 找不到类型或命名空间名称“AttributedAssemblyPartCatalog”(是否缺少 using 指令或程序集引用?) C:\Documents and Settings\test\Desktop\MEFDemo\MEFDemo\程序.cs 31 13 MEFDemo
我在哪里添加了对 SystemComponentModel.Composition 的引用
最佳答案
基本上,var
强制编译器根据它的“初始化器”来确定(推断)变量的编译时类型——有效地,一个表达式对 =
标志。这里的类型很明显:
AttributedAssemblyPartCatalog catalog =
new AttributedAssemblyPartCatalog(Assembly.GetExecutingAssembly());
CompositionContainer container =
new CompositionContainer(catalog.CreateResolver());
并确保添加 using System.ComponentModel.Composition;
语句。另外,请注意 AttributedAssemblyPartCatalog
已重命名为 AssemblyCatalog
。
关于c# - 在 C# 3.0 中我们使用 "var"在 C# 2.0 中它的替代品是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856780/