private static SiteInfo PublishSite(SiteInfo si)
        {
            int      arrIndex = si.Offset - StorageData.SiteTypes * StorageData.StaticFields;
            CallSite site     = si.MakeSite();

            if (arrIndex < 0)
            {
                si.Field.SetValue(null, site);
            }
            else
            {
                lock (StorageData.SiteLockObj) {
                    ((CallSite[])si.Field.GetValue(null))[arrIndex] = site;
                }
            }

            return(si);
        }