How to create and pass a lazy<T,Tmetadata> for unit testing?-Collection of common programming errors

Hello all,

So i decided to create a repository for my MEF project, this would allow me to swap out the source for my given situation (runtime, testing, etc…) However, I’ve noticed and I understand that most use lazy loading for the MEF importmany plugin property/field. My issue is attempting to build a repository that returns test plugin classes, but of course i’m having problems instantiating the lazy property in the test repository. Thoughts?

public List GetAllPlugins()
        {
            _testPluginList.Add(new Lazy
                (
                    () =>
                    {
                        IPluginContract testPluginOne = new TestPluginContract();
                        return testPluginOne;
                    }
               )
            );
            _testPluginList.Add(new Lazy
                (
                    () =>
                    {
                        IPluginContract testPluginTwo = new TestPluginContract();
                        return testPluginTwo;
                    }
                )
            );
            return _testPluginList;
        }

Thoughts anyone?

I get the following error when attempting to build:

“Cannot convert anonymous method to type ‘System.Collections.Generic.IDictionary’ because it is not a delegate type” ; that is on both list.Add methods. 

May the Force be with you young Jedi…

Console.WriteLine("-Warren");

Please Help your Helper(s) =)

If you find someone’s post helpful please click the green “up arrow” to the left and vote!
Did someone’s post Answer your question? Mark it as the Answer!
It’s Greatly Appreciated =)