- linfupart4_samples.zip
- Simple.IoC.Examples
- bin
- Simple.IoC.dll
- Simple.IoC.Loaders.dll
- ConstructorInjection
- DependencyInjectionSample
- Extensibility
- PropertyInjectionSample
- Simple.IoC.Examples.sln
- linfu_src.zip
- LinFu.Common
- LinFu.Delegates
- LinFu.DynamicProxy
- LinFu.License.txt
- LinFu.Reflection
- NMock2.dll
- nunit.core.dll
- nunit.framework.dll
- Simple.IoC
- Simple.IoC.Loaders
- Simple.IoC.Tests
- Simple.IoC
- linfu_bin.zip
- LinFu.Common.dll
- LinFu.Delegates.dll
- LinFu.DynamicProxy.dll
- LinFu.License.txt
- LinFu.Reflection.dll
- NMock2.dll
- nunit.core.dll
- nunit.framework.dll
- Simple.IoC.dll
- Simple.IoC.Loaders.dll
|
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using NUnit.Framework;
namespace LinFu.Delegates.Tests
{
[TestFixture]
public class DelegateTests
{
[Test]
public void ShouldBeAbleToCreateCustomDelegate()
{
TestClass test = new TestClass();
Type returnType = typeof (void);
Type[] parameterTypes = new Type[] {typeof (string)};
CustomDelegate methodBody = delegate(object[] args)
{
Console.WriteLine("Hello, {0}!", args[0]);
test.TargetMethod();
return null;
};
object[] arguments = new object[] {"World!"};
Type delegateType = DelegateFactory.DefineDelegateType("__Anonymous", returnType, parameterTypes);
MulticastDelegate target = DelegateFactory.DefineDelegate(delegateType, methodBody, returnType, parameterTypes);
target.DynamicInvoke(arguments);
Assert.IsTrue(test.CallCount == 1);
}
[Test]
public void ShouldBindToNonStaticMethod()
{
MethodInfo targetMethod = typeof(TestClass).GetMethod("TargetMethod");
TestClass instance = new TestClass();
MulticastDelegate result = DelegateFactory.DefineDelegate(instance, targetMethod);
result.DynamicInvoke();
Assert.IsTrue(instance.CallCount == 1);
}
[Test]
public void ShouldBindToStaticMethod()
{
MethodInfo targetMethod = typeof(TestClass).GetMethod("StaticTargetMethod",
BindingFlags.Static | BindingFlags.Public);
MulticastDelegate result = DelegateFactory.DefineDelegate(null, targetMethod);
result.DynamicInvoke();
Assert.IsTrue(TestClass.StaticCallCount == 1);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.