/// <summary>
        /// Register snippet insert as sibling patch
        /// </summary>
        /// <param name="movie"></param>
        /// <param name="xpath"></param>
        /// <param name="patch"></param>
        public void RegisterPatch(string movie, string?xpath, PrefabExtensionInsertAsSiblingPatch patch)
        {
            RegisterPatch(movie, xpath, node =>
            {
                var ownerDocument = node is XmlDocument xmlDocument ? xmlDocument : node.OwnerDocument !;
                if (node.ParentNode == null)
                {
                    return;
                }

                var extensionNode         = patch.GetPrefabExtension().DocumentElement;
                var importedExtensionNode = ownerDocument.ImportNode(extensionNode, true);

                switch (patch.Type)
                {
                case PrefabExtensionInsertAsSiblingPatch.InsertType.Append:
                    node.ParentNode.InsertAfter(importedExtensionNode, node);
                    break;

                case PrefabExtensionInsertAsSiblingPatch.InsertType.Prepend:
                    node.ParentNode.InsertBefore(importedExtensionNode, node);
                    break;
                }
            });
        }
예제 #2
0
        /**
         * Register XML sibling insert patch
         */
        internal void RegisterPatch(string movie, string xpath, PrefabExtensionInsertAsSiblingPatch patch)
        {
            RegisterPatch(movie, xpath, (node) =>
            {
                var extensionNode         = LoadPrefabExtension(patch.Name);
                var importedExtensionNode = node.OwnerDocument.ImportNode(extensionNode, true);

                switch (patch.Type)
                {
                case PrefabExtensionInsertAsSiblingPatch.InsertType.Append:
                    node.ParentNode.InsertAfter(importedExtensionNode, node);
                    break;

                case PrefabExtensionInsertAsSiblingPatch.InsertType.Prepend:
                    node.ParentNode.InsertBefore(importedExtensionNode, node);
                    break;
                }
            });
        }