Yes. You need to bind an object.
Although it’s true that the link is static, that is, you can access this location anywhere in your member, this link is still a GC handle. That is, he has the right to garbage collection (and / or compaction), but this, of course, will never happen.
I don’t think it’s wrong to think that the static modifier implies that in the end it will have a static location in memory, but there the big problem is that there is no API that allows you to get the memory address without binding the object. he moved GC or not.
In addition, each static member is unqiue for the AppDomain (not the process). The same static member can exist in different memory locations in the same process, and it can be garbage collection when the AppDomain is unloaded. This is a rather brief case, which I admit, but there is no real advantage to not pinning objects, even if it could be done without pinning.
source share