Exemplo n.º 1
0
        /**
         * Register XML replace patch
         */
        internal void RegisterPatch(string movie, string xpath, PrefabExtensionReplacePatch patch)
        {
            RegisterPatch(movie, xpath, (node) =>
            {
                var extensionNode         = LoadPrefabExtension(patch.Name);
                var importedExtensionNode = node.OwnerDocument.ImportNode(extensionNode, true);

                node.ParentNode.ReplaceChild(importedExtensionNode, node);
            });
        }
        /// <summary>
        /// Register snippet replace patch
        /// </summary>
        /// <param name="movie"></param>
        /// <param name="xpath"></param>
        /// <param name="patch"></param>
        public void RegisterPatch(string movie, string?xpath, PrefabExtensionReplacePatch 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);

                node.ParentNode.ReplaceChild(importedExtensionNode, node);
            });
        }