Extracting class from premium library

I want my USBizi based device to support In-field update. Unfortunately after I activate it there is not enough flash left for my main application. I use all referenced libraries and there is no much I can do about that. I have downloaded W5100.Http source code and stripped it from things I don’t use and still i have a few KB to much. It seems I need to have 60KB of PE files. One thing that bothers me is that I’m referencing GHIElectronics.NETMF.Hardware that is 9KB when i only use OutputCompare class. Is there a way to extract this class so that i can get some free flash? I tried to complile what Reflector showed me:

namespace GHIElectronics.NETMF.Hardware
{
    public class OutputCompare : IDisposable
    {
        // Fields
        private uint address;
        private byte disposed;

        // Methods
        public OutputCompare(Cpu.Pin pin, bool initialValue, int MAX_TIMINGS_BUFFER_SIZE)
        {
            this.OutputCompare_ctor((uint)pin, initialValue, MAX_TIMINGS_BUFFER_SIZE);
        }

        [MethodImpl(MethodImplOptions.InternalCall)]
        public extern void Dispose();
        [MethodImpl(MethodImplOptions.InternalCall)]
        protected extern void Finalize();
        [MethodImpl(MethodImplOptions.InternalCall)]
        private extern void OutputCompare_ctor(uint pin, bool initialValue, int MAX_TIMINGS_BUFFER_SIZE);
        [MethodImpl(MethodImplOptions.InternalCall)]
        public extern void Set(bool pinState);
        [MethodImpl(MethodImplOptions.InternalCall)]
        public extern void Set(bool initialValue, uint[] timingsBuffer_us, int bufferOffset, int bufferCount, bool bufferRepeating);
        [MethodImpl(MethodImplOptions.InternalCall)]
        public extern void SetBlocking(bool initialValue, uint[] timingsBuffer_us, int bufferOffset, int bufferCount, uint lastBitHoldTime_us, bool disableInterrupts);
        [MethodImpl(MethodImplOptions.InternalCall)]
        public extern void SetBlocking(bool initialValue, uint[] timingsBuffer_us, int bufferOffset, int bufferCount, uint lastBitHoldTime_us, bool disableInterrupts, uint carrierFrequency_hz);

        // Properties
        public bool IsActive { [MethodImpl(MethodImplOptions.InternalCall)] get; set; }
    }
}

but I get NotSupported exception in the constructor. Maybe some ideas how to solve this?

You see only a wrapper above native implementation of OutputCompare
The thread bellow may help you to reduce the size of yout program
http://www.tinyclr.com/forum/topic?id=5282&page=1

@ Cosmin - Thank you for the link! The tutorial about keeping NET MF solution small was something i was looking for. I managed to go down 10KB by using obfuscation!