public void LazyDelegateAdapterTest() { var factoryCounter = 0; Func <Func <int, int> > delegFactory = () => { factoryCounter++; return((a) => a * 2); }; var lazyDelegAdapter = new LazyDelegateAdapter(delegFactory); var lazyDeleg = lazyDelegAdapter.GetDelegate <Func <int, int> >(); Assert.AreEqual(0, factoryCounter); Assert.AreEqual(10, lazyDeleg(5)); Assert.AreEqual(1, factoryCounter); Func <Delegate> strDelegFactory = () => { return((Func <string>)testMethod); }; var lazyStrDelegAdapter = new LazyDelegateAdapter(strDelegFactory); var lazyStrDeleg = lazyStrDelegAdapter.GetDelegate <Func <string> >(); Assert.AreEqual("test", lazyStrDeleg()); }
public object GetObject() { var lazyDelegAdapter = new LazyDelegateAdapter(GetRealDelegate); return(lazyDelegAdapter.GetDelegate(DelegateType)); }