public virtual void Weave(ILGenerator ilGenerator) { MethodScopeWeaversQueue methodScopeWeaversQueue = null; weavers.Add(new BeginExceptionBlockMethodScopeWeaver()); weavers.AddRange(tryWeavers); weavers.Add(new FinallyMethodScopeWeaver(finallyWeavers)); weavers.Add(new EndExceptionBlockMethodScopeWeaver()); if (returnValueWeaver.IsNotNull()) { weavers.Add(returnValueWeaver); } methodScopeWeaversQueue = new MethodScopeWeaversQueue(weavers); methodScopeWeaversQueue.Weave(ilGenerator); }
public override void Weave(ILGenerator ilGenerator) { var weavers = new List<IMethodScopeWeaver>(); MethodScopeWeaversQueue methodScopeWeaversQueue = null; weavers.AddRange(entryWeavers); weavers.Add(new BeginExceptionBlockMethodScopeWeaver()); weavers.Add(new BeginExceptionBlockMethodScopeWeaver()); weavers.AddRange(tryWeavers); weavers.Add(new BeginCatchBlockMethodScopeWeaver(catchWeavers, tryCatchFinallySettings)); weavers.Add(new EndExceptionBlockMethodScopeWeaver()); weavers.Add(new FinallyMethodScopeWeaver(finallyWeavers)); weavers.Add(new EndExceptionBlockMethodScopeWeaver()); if (returnValueWeaver.IsNotNull()) { weavers.Add(returnValueWeaver); } methodScopeWeaversQueue = new MethodScopeWeaversQueue(weavers); methodScopeWeaversQueue.Weave(ilGenerator); }