Peter Stephens wrote:

> So I made a wrapper object that implements IDisposable and then calls
> Marshal.ReleaseComObject(...) on Dispose().

I think it's nearly criminal (<grin>) that the .NET team didn't add
Dispose() support automatically on generated COM wrappers!

>         // Properties
>         public Object Target
>         {
>                 get { return _obj; }
>                 set
>                 {
>                         lock(this)
>                         _obj = value;
>                 }
>         }

Everything looks okay except this. Since this wrapper is meant to be a sort
of strong ownership over the object, I don't think it's a good idea to let
it be set (thus causing the old object to, presumably, go out of reference
without being cleaned up). Since you're going to be using this in a using
block (presumably), I would personally consider it logically inconsistent to
be swapping the object out underneath it.

Just my 2c. :)

Brad

--
Read my web log at http://www.quality.nu/dotnetguy/

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to