C# 클래스 Castle.DynamicProxy.Generators.BaseProxyGenerator

Base class that exposes the common functionalities to proxy generation.
TODO: - Add tests and fixes for 'leaking this' problem
파일 보기 프로젝트 열기: Jarvin-Guan/CleanAOP

보호된 프로퍼티들

프로퍼티 타입 설명
targetType Type

보호된 메소드들

메소드 설명
AddMapping ( Type @interface, ITypeContributor implementer, ITypeContributor>.IDictionary mapping ) : void
AddMappingForISerializable ( ITypeContributor>.IDictionary typeImplementerMapping, ITypeContributor instance ) : void
AddMappingNoCheck ( Type @interface, ITypeContributor implementer, ITypeContributor>.IDictionary mapping ) : void

It is safe to add mapping (no mapping for the interface exists)

AddToCache ( CacheKey key, Type type ) : void
BaseProxyGenerator ( ModuleScope scope, Type targetType ) : System
BuildClassEmitter ( string typeName, Type parentType, IEnumerable interfaces ) : ClassEmitter
CheckNotGenericTypeDefinition ( Type type, string argumentName ) : void
CheckNotGenericTypeDefinitions ( IEnumerable types, string argumentName ) : void
CompleteInitCacheMethod ( ConstructorCodeBuilder constCodeBuilder ) : void
CreateFields ( ClassEmitter emitter ) : void
CreateInterceptorsField ( ClassEmitter emitter ) : void
CreateOptionsField ( ClassEmitter emitter ) : FieldReference
CreateSelectorField ( ClassEmitter emitter ) : void
CreateTypeAttributes ( ClassEmitter emitter ) : void
EnsureOptionsOverrideEqualsAndGetHashCode ( ProxyGenerationOptions options ) : void
GenerateConstructor ( ClassEmitter emitter, ConstructorInfo baseConstructor ) : void
GenerateConstructors ( ClassEmitter emitter, Type baseType ) : void
GenerateParameterlessConstructor ( ClassEmitter emitter, Type baseClass, FieldReference interceptorField ) : void

Generates a parameters constructor that initializes the proxy state with StandardInterceptor just to make it non-null.

This constructor is important to allow proxies to be XML serializable

GenerateStaticConstructor ( ClassEmitter emitter ) : ConstructorEmitter
GetFromCache ( CacheKey key ) : Type
HandleExplicitlyPassedProxyTargetAccessor ( ICollection targetInterfaces, ICollection additionalInterfaces ) : void
InitializeStaticFields ( Type builtType ) : void
ObtainProxyType ( CacheKey cacheKey, Func factory ) : Type

비공개 메소드들

메소드 설명
IsConstructorVisible ( ConstructorInfo constructor ) : bool
OverridesEqualsAndGetHashCode ( Type type ) : bool

메소드 상세

AddMapping() 보호된 메소드

protected AddMapping ( Type @interface, ITypeContributor implementer, ITypeContributor>.IDictionary mapping ) : void
@interface System.Type
implementer ITypeContributor
mapping ITypeContributor>.IDictionary
리턴 void

AddMappingForISerializable() 보호된 메소드

protected AddMappingForISerializable ( ITypeContributor>.IDictionary typeImplementerMapping, ITypeContributor instance ) : void
typeImplementerMapping ITypeContributor>.IDictionary
instance ITypeContributor
리턴 void

AddMappingNoCheck() 보호된 메소드

It is safe to add mapping (no mapping for the interface exists)
protected AddMappingNoCheck ( Type @interface, ITypeContributor implementer, ITypeContributor>.IDictionary mapping ) : void
@interface System.Type
implementer ITypeContributor
mapping ITypeContributor>.IDictionary
리턴 void

AddToCache() 보호된 메소드

protected AddToCache ( CacheKey key, Type type ) : void
key CacheKey
type Type
리턴 void

BaseProxyGenerator() 보호된 메소드

protected BaseProxyGenerator ( ModuleScope scope, Type targetType ) : System
scope ModuleScope
targetType Type
리턴 System

BuildClassEmitter() 보호된 메소드

protected BuildClassEmitter ( string typeName, Type parentType, IEnumerable interfaces ) : ClassEmitter
typeName string
parentType Type
interfaces IEnumerable
리턴 ClassEmitter

CheckNotGenericTypeDefinition() 보호된 메소드

protected CheckNotGenericTypeDefinition ( Type type, string argumentName ) : void
type Type
argumentName string
리턴 void

CheckNotGenericTypeDefinitions() 보호된 메소드

protected CheckNotGenericTypeDefinitions ( IEnumerable types, string argumentName ) : void
types IEnumerable
argumentName string
리턴 void

CompleteInitCacheMethod() 보호된 메소드

protected CompleteInitCacheMethod ( ConstructorCodeBuilder constCodeBuilder ) : void
constCodeBuilder ConstructorCodeBuilder
리턴 void

CreateFields() 보호된 메소드

protected CreateFields ( ClassEmitter emitter ) : void
emitter ClassEmitter
리턴 void

CreateInterceptorsField() 보호된 메소드

protected CreateInterceptorsField ( ClassEmitter emitter ) : void
emitter ClassEmitter
리턴 void

CreateOptionsField() 보호된 메소드

protected CreateOptionsField ( ClassEmitter emitter ) : FieldReference
emitter ClassEmitter
리턴 FieldReference

CreateSelectorField() 보호된 메소드

protected CreateSelectorField ( ClassEmitter emitter ) : void
emitter ClassEmitter
리턴 void

CreateTypeAttributes() 보호된 메소드

protected CreateTypeAttributes ( ClassEmitter emitter ) : void
emitter ClassEmitter
리턴 void

EnsureOptionsOverrideEqualsAndGetHashCode() 보호된 메소드

protected EnsureOptionsOverrideEqualsAndGetHashCode ( ProxyGenerationOptions options ) : void
options ProxyGenerationOptions
리턴 void

GenerateConstructor() 보호된 메소드

protected GenerateConstructor ( ClassEmitter emitter, ConstructorInfo baseConstructor ) : void
emitter ClassEmitter
baseConstructor ConstructorInfo
리턴 void

GenerateConstructors() 보호된 메소드

protected GenerateConstructors ( ClassEmitter emitter, Type baseType ) : void
emitter ClassEmitter
baseType Type
리턴 void

GenerateParameterlessConstructor() 보호된 메소드

Generates a parameters constructor that initializes the proxy state with StandardInterceptor just to make it non-null.

This constructor is important to allow proxies to be XML serializable

protected GenerateParameterlessConstructor ( ClassEmitter emitter, Type baseClass, FieldReference interceptorField ) : void
emitter ClassEmitter
baseClass Type
interceptorField FieldReference
리턴 void

GenerateStaticConstructor() 보호된 메소드

protected GenerateStaticConstructor ( ClassEmitter emitter ) : ConstructorEmitter
emitter ClassEmitter
리턴 ConstructorEmitter

GetFromCache() 보호된 메소드

protected GetFromCache ( CacheKey key ) : Type
key CacheKey
리턴 Type

HandleExplicitlyPassedProxyTargetAccessor() 보호된 메소드

protected HandleExplicitlyPassedProxyTargetAccessor ( ICollection targetInterfaces, ICollection additionalInterfaces ) : void
targetInterfaces ICollection
additionalInterfaces ICollection
리턴 void

InitializeStaticFields() 보호된 메소드

protected InitializeStaticFields ( Type builtType ) : void
builtType Type
리턴 void

ObtainProxyType() 보호된 메소드

protected ObtainProxyType ( CacheKey cacheKey, Func factory ) : Type
cacheKey CacheKey
factory Func
리턴 Type

프로퍼티 상세

targetType 보호되어 있는 프로퍼티

protected Type targetType
리턴 Type