private static void InitDelegates() { Contract.Assert(null != ZLibStreamHandle.zlibLibraryHandle); Contract.Assert(!ZLibStreamHandle.zlibLibraryHandle.IsInvalid); deflateInit2_Delegate = CreateDelegate <DeflateInit2_Delegate>("deflateInit2_"); deflateDelegate = CreateDelegate <DeflateDelegate>("deflate"); deflateEndDelegate = CreateDelegate <DeflateEndDelegate>("deflateEnd"); inflateInit2_Delegate = CreateDelegate <InflateInit2_Delegate>("inflateInit2_"); inflateDelegate = CreateDelegate <InflateDelegate>("inflate"); inflateEndDelegate = CreateDelegate <InflateEndDelegate>("inflateEnd"); zlibCompileFlagsDelegate = CreateDelegate <ZlibCompileFlagsDelegate>("zlibCompileFlags"); #if !SILVERLIGHT RuntimeHelpers.PrepareDelegate(deflateInit2_Delegate); RuntimeHelpers.PrepareDelegate(deflateDelegate); RuntimeHelpers.PrepareDelegate(deflateEndDelegate); RuntimeHelpers.PrepareDelegate(inflateInit2_Delegate); RuntimeHelpers.PrepareDelegate(inflateDelegate); RuntimeHelpers.PrepareDelegate(inflateEndDelegate); RuntimeHelpers.PrepareDelegate(zlibCompileFlagsDelegate); #endif // !SILVERLIGHT }
internal Deflater(object deflaterInstance) { Type type = deflaterInstance.GetType(); setLevelMethod = (SetLevelDelegate)Delegate.CreateDelegate( typeof(SetLevelDelegate), deflaterInstance, type.GetMethod("SetLevel", new Type[] { typeof(int) })); setInputMethod = (SetInputDelegate)Delegate.CreateDelegate( typeof(SetInputDelegate), deflaterInstance, type.GetMethod("SetInput", new Type[] { typeof(byte[]), typeof(int), typeof(int) })); finishMethod = (FinishDelegate)Delegate.CreateDelegate( typeof(FinishDelegate), deflaterInstance, type.GetMethod("Finish", Type.EmptyTypes)); getIsFinishedMethod = (GetIsFinishedDelegate)Delegate.CreateDelegate( typeof(GetIsFinishedDelegate), deflaterInstance, type.GetMethod("get_IsFinished", Type.EmptyTypes)); deflateMethod = (DeflateDelegate)Delegate.CreateDelegate( typeof(DeflateDelegate), deflaterInstance, type.GetMethod("Deflate", new Type[] { typeof(byte[]) })); }
internal Deflater(object deflaterInstance) { Type type = deflaterInstance.GetType(); setLevelMethod = (SetLevelDelegate)Delegate.CreateDelegate( typeof(SetLevelDelegate), deflaterInstance, type.GetMethod("SetLevel", new Type[] { typeof(int) })); setInputMethod = (SetInputDelegate)Delegate.CreateDelegate( typeof(SetInputDelegate), deflaterInstance, type.GetMethod("SetInput", new Type[] { typeof(byte[]), typeof(int), typeof(int) })); finishMethod = (FinishDelegate)Delegate.CreateDelegate( typeof(FinishDelegate), deflaterInstance, type.GetMethod("Finish", Type.EmptyTypes)); getIsFinishedMethod = (GetIsFinishedDelegate)Delegate.CreateDelegate( typeof(GetIsFinishedDelegate), deflaterInstance, type.GetMethod("get_IsFinished", Type.EmptyTypes)); deflateMethod = (DeflateDelegate)Delegate.CreateDelegate( typeof(DeflateDelegate), deflaterInstance, type.GetMethod("Deflate", new Type[] { typeof(byte[]) })); }