MEF太难了,根本搞不懂。

busuxiaodudu 2012-04-18 12:12:27
下载了一个入门代码,里面有几个东西,在MSDN上面都查不到的,比如AttributedAssemblyPartCatalog

在主函数Run里面的。
根本没有这个东西啊,调试不出来。。。
哪儿错了?


using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.ComponentModel.Composition.Hosting;
using System.Reflection;

namespace HelloWorld
{
class Program
{
[Import]
public string Message { get; set; }

public class SimpleHello
{
[Export]
public string Message
{
get { return "Hello World!"; }
}
}

public void Run()
{
var catalog=new AttributedAssemblyPartCatalog(Assembly.GetExecutingAssembly());
var container=new CompositionContainer(catalog.CreateResolver());
container.AddPart(this);
container.Compose();

Console.WriteLine(Message);
Console.ReadKey();
}
static void Main(string[] args)
{
Program pg = new Program();
pg.Run();
}
}
}

...全文
142 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
busuxiaodudu 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
MEF 接口就那么几个,应该不难学。要看源码直接从 codeplex 上下好了。
[/Quote]
谢谢。
上面那些代码,下了好几个,没一个行的。
机器人 2012-04-18
  • 打赏
  • 举报
回复
MEF 接口就那么几个,应该不难学。要看源码直接从 codeplex 上下好了。
busuxiaodudu 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你下的MEF sample是哪个版本的?

按照.net4.0里自带,应该写成:


C# code
public void Run()
{
var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());
var container = new CompositionContainer(cat……
[/Quote]

真是版本的问题。好了。
C#高级编程第七版,也有示例代码,不过很乱,根本调不出来的,不知道学这些东西还有什么比较好的书?
机器人 2012-04-18
  • 打赏
  • 举报
回复
你下的MEF sample是哪个版本的?

按照.net4.0里自带,应该写成:

public void Run()
{
var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());
var container = new CompositionContainer(catalog);
container.ComposeParts(this);
Console.WriteLine(Message);
Console.ReadKey();
}


看看 codeplex MEF document:http://mef.codeplex.com/wikipage?title=Using%20catalogs&referringTitle=Overview

110,538

社区成员

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

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

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