internal SharedResource()
 {
     sharedResourceIdentifier = SharedResourceIdentifier.Create();
     directlyConnectedSharedSharedResources = new List<SharedResource> { this };
     mustRecalculateConnectedSharedResources = true;
     connectedSharedResourcesCache = GetConnectedSharedResources();
 }
 /// <summary>
 /// Sets the shared resource identifier to be used as the new root. This will cut any existing chain to the root shared resource identifier
 /// </summary>
 internal void ResetRootSharedResourceIdentifier(SharedResourceIdentifier newRootSharedResourceIdentifier)
 {
     sharedResourceIdentifier.SetParentSharedResourceIdentifier(newRootSharedResourceIdentifier);
 }