C# Класс Shaspect.Builder.MethodAspectInjector

Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
Inject ( ) : void

Modifies the injecting method so it looks like: var methodExecInfo = new MethodExecInfo (new [] {arg1, arg2, ...}); BaseAspectAttribute.OnEntry (methodExecInfo); try { try { // Original method code, without return instructions } catch (Exception ex) { methodExecInfo.Exception = ex; BaseAspectAttribute.OnException (methodExecInfo); throw; } BaseAspectAttribute.OnSuccess (methodExecInfo); } finally { BaseAspectAttribute.OnExit (methodExecInfo); } return result; // single return instruction

MethodAspectInjector ( Mono.Cecil.MethodDefinition method, FieldDefinition aspectStaticField, FieldDefinition methodStaticField ) : System

Приватные методы

Метод Описание
AddCatchBlock ( Instruction tryStartInstr, Instruction tryEndInstr ) : void
AddFinallyBlock ( Instruction tryStartInstr, Instruction tryEndInstr ) : void
BuildCheckExecFlow ( Instruction insertBeforeInstr ) : Collection
BuildOnExceptionCall ( ) : Collection
BuildOnExitCall ( ) : Collection
CallOnEntry ( int offset ) : void
CallOnSuccess ( int offset ) : Collection
FindFirstInstruction ( ) : Instruction

For regular methods the 1st instruction is really the 1st one. But for instance constructors the 1st instruction goes after calling base or overloaded contructurs.

InitMethodExecInfoVar ( ) : void
MakeOneReturn ( ) : void

Substitute multiple returns in a method with one return instruction at the end

Описание методов

Inject() публичный Метод

Modifies the injecting method so it looks like: var methodExecInfo = new MethodExecInfo (new [] {arg1, arg2, ...}); BaseAspectAttribute.OnEntry (methodExecInfo); try { try { // Original method code, without return instructions } catch (Exception ex) { methodExecInfo.Exception = ex; BaseAspectAttribute.OnException (methodExecInfo); throw; } BaseAspectAttribute.OnSuccess (methodExecInfo); } finally { BaseAspectAttribute.OnExit (methodExecInfo); } return result; // single return instruction
public Inject ( ) : void
Результат void

MethodAspectInjector() публичный Метод

public MethodAspectInjector ( Mono.Cecil.MethodDefinition method, FieldDefinition aspectStaticField, FieldDefinition methodStaticField ) : System
method Mono.Cecil.MethodDefinition
aspectStaticField Mono.Cecil.FieldDefinition
methodStaticField Mono.Cecil.FieldDefinition
Результат System