Я пытался скомпилировать код MEF, скопированный с этой страницы .
using System.ComponentModel.Composition;
using System.ComponentModel.Composition.Hosting;
using System.Reflection;
using System;
public class Program
{
[Import]
public IMessageSender MessageSender { get; set; }
public static void Main(string[] args)
{
Program p = new Program();
p.Run();
}
public void Run()
{
Compose();
MessageSender.Send("Message Sent");
}
private void Compose()
{
AssemblyCatalog catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());
var container = new CompositionContainer(catalog);
container.ComposeParts(this);
}
}
public interface IMessageSender
{
void Send(string message);
}
[Export(typeof(IMessageSender))]
public class EmailSender : IMessageSender
{
public void Send(string message)
{
Console.WriteLine(message);
}
}
Когда я запускаю эту команду dmcs example.cs
, я получаю это сообщение об ошибке.
ex.cs(1,29): error CS0234: The type or namespace name `Composition' does not exist in the namespace `System.ComponentModel'. Are you missing an assembly reference?
Какую справочную библиотеку мне нужно дать, чтобы удалить это сообщение об ошибке?
ДОБАВЛЕНО
dmcs ex.cs /r:System.ComponentModel.Composition.dll
работает.Не нужно скачивать dll из codeplex.