Skip to content

Instantly share code, notes, and snippets.

@dbuksbaum
Created May 2, 2015 21:25
Show Gist options
  • Save dbuksbaum/e4d2b6343513bf3112b3 to your computer and use it in GitHub Desktop.
Save dbuksbaum/e4d2b6343513bf3112b3 to your computer and use it in GitHub Desktop.
Gentle Introduction to MEF
public interface IGenerator
{
string Name { get; }
string Generate();
}
public interface ITransformer
{
string Name { get; }
string Transform(string text);
}
public class LoremIpsumGenerator : IGenerator
{
#region Implementation of IGenerator
public string Name
{
get { return "Lorem Ipsum"; }
}
public string Generate()
{
return "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin a metus commodo quam tincidunt imperdiet. Praesent quis consectetur nulla. Cras interdum imperdiet posuere. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec hendrerit, erat et sollicitudin elementum, mi nulla aliquet nulla, ac fringilla nibh velit eget ipsum. Vivamus eget mi sed lacus ultrices convallis. Suspendisse fringilla pellentesque eros, at ultricies metus ultricies sed. Proin dolor dui, ultricies et blandit sit amet, gravida et purus. Proin magna dui, egestas ac imperdiet non, convallis sed nisi. Proin adipiscing hendrerit tortor commodo porta. Integer ullamcorper leo non odio condimentum ut sodales quam pellentesque. Phasellus quis quam quis enim pretium varius ac sit amet tellus. Donec dolor justo, tempor non pulvinar a, feugiat sed risus. Sed eget metus mauris." +
"Curabitur id pulvinar massa. Nam vel risus lectus, ut adipiscing quam. Mauris tincidunt massa in purus sagittis ullamcorper. Suspendisse posuere aliquam dolor ac posuere. Nulla interdum, erat a rutrum laoreet, purus neque rhoncus tellus, aliquam faucibus lacus justo eu ipsum. Vivamus bibendum est quis felis tempor ut convallis augue ultrices. Proin interdum fringilla sapien, nec tincidunt orci tempus sed. Integer eros dolor, fringilla id dictum at, adipiscing id purus. Vestibulum ullamcorper turpis quis massa feugiat non pharetra leo tempus. Cras et felis viverra nibh aliquet dapibus ac id ipsum." +
"Maecenas suscipit, leo ac cursus imperdiet, massa augue tincidunt purus, vel lacinia justo est id diam. Sed venenatis nisl non nibh vehicula id gravida metus imperdiet. Fusce euismod, eros et euismod ultricies, ipsum sem dapibus lacus, id ultricies nibh lacus porta est. Sed molestie fringilla metus vitae egestas. Vivamus at augue nibh, id volutpat nibh. Mauris tempus dapibus elementum. Sed volutpat aliquet augue id pretium. Donec consectetur eros id odio interdum lacinia. Suspendisse vitae lectus a sapien rhoncus varius vel consectetur tortor. Aenean id luctus libero. Praesent velit justo, tristique ac ultrices in, sollicitudin eu orci. Sed ornare ante sed libero volutpat tempus. Etiam vitae eros eu leo egestas sollicitudin. Integer pharetra interdum massa non condimentum. Sed augue sapien, eleifend sed ullamcorper id, elementum eget justo. Sed dignissim dictum tortor, quis feugiat lorem aliquet ac. Quisque vel elit ut libero sollicitudin accumsan. Aliquam bibendum sapien vitae tortor dapibus cursus non vitae nulla." +
"Cras semper fringilla odio id posuere. Duis nulla enim, gravida quis malesuada id, sollicitudin quis nisl. Curabitur tortor risus, iaculis a rhoncus sed, condimentum in ligula. Maecenas et magna in orci pulvinar euismod eu et odio. Cras sed tortor orci. Suspendisse porta neque vel purus eleifend rutrum. Pellentesque vel magna ac metus pulvinar tincidunt eu quis nunc. Vestibulum ligula purus, iaculis quis blandit ac, sodales et urna. Duis sodales ipsum quis magna vehicula non ornare lacus fringilla. Nulla neque erat, adipiscing at convallis sed, sodales eu ante. Curabitur quis aliquet mauris. Aliquam gravida augue et elit convallis a lobortis dui laoreet. Sed porta turpis vitae neque consequat at lacinia nibh pretium. Morbi pellentesque nulla id mauris consectetur ut malesuada mi viverra. Suspendisse vulputate lacinia imperdiet. Sed ultrices condimentum justo viverra condimentum. Morbi odio massa, convallis et sollicitudin vitae, fermentum eu magna. Nulla malesuada turpis a nisi semper sollicitudin. Morbi sed est lectus. Morbi auctor mollis pharetra." +
"Proin eleifend aliquam leo, quis vulputate tortor faucibus ac. Cras lobortis lacus felis. Curabitur eu erat nec odio euismod faucibus. Ut ut tortor turpis. Donec mattis posuere ipsum, a eleifend purus cursus ut. Suspendisse faucibus facilisis porta. Nulla id nulla sed quam placerat tincidunt. Phasellus elementum nulla ac ante feugiat varius. Aliquam eleifend, tellus in congue interdum, ipsum est porta lectus, ac ullamcorper magna nibh et tellus. Suspendisse eget tortor et ipsum vestibulum lacinia. Quisque sed leo nisl. Cras hendrerit, neque dictum suscipit fringilla, orci velit sollicitudin leo, in tincidunt tellus dolor eu purus. Nulla quis lacus ac diam tempus dapibus.";
}
#endregion
}
public class LowerCaseTransformer : ITransformer
{
#region Implementation of ITransformer
public string Name
{
get { return "Lower Case Transformer"; }
}
public string Transform(string text)
{
return text.ToLower();
}
#endregion
}
public class TranformationEngine
{
public IGenerator Generator { get; set; }
public ICollection<ITransformer> Transformers { get; set; }
}
public class UpperCaseTransformer : ITransformer
{
#region Implementation of ITransformer
public string Name
{
get { return "Upper Case Transformer"; }
}
public string Transform(string text)
{
return text.ToUpper();
}
#endregion
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment