Is the idea you're suggesting to rewrite the events mechanism myself,
using weak references?
Only if you actually need a collectable static/singleton event hook.
Unfortunately the event/delegate mechanism wouldn't really work here in
the normal "custom backer ["add"/"remove" event implementation]" sense,
since you'd only have access to a delegate, which may point vaguely at
a target (while being collectable independently), so if you need this
type of functionality I was suggesting some kind of
"Register/Unregister" / "Subscribe/Unsubscribe" pair of methods
(static/singleton), such that they accept your object (or the
interface) and add/remove the item to/from a collection of
WeakReference wrappers ("refs" in my code sample). Does that make
sense?
And is there a way to get the strong reference
count to an object?:
None that I know of... managed objects simply aren't reference counted,
so the only thing that would know is the GC.... right before it pulls
out its scythe.