나는 파고 들었다. 그것은 가능하지만, 즉각적인 것은 아닙니다.
트리를 serialize 할 때 Sitecore는 다음을 호출합니다. Sitecore.Shell.Framework.Commands.Serialization.DumpTreeCommand. 이것은 /App_Config/Commands.config에 정의되어 있습니다. 직렬화를 해제하면 해당하는 .LoadTreeCommand가 호출됩니다.
protected override void Dump(Item item)
{
Sitecore.Data.Serialization.Manager.DumpTree(item);
}
그리고 당신이 명령을 무시) 1로해야 할 것 같은 불행하게도, 당신이 우선해야 할 기능에 도착하면, 보이는을 :이 명령은 무엇
는, 호출보다는 조금 더 commands.config를 열고 자신의 직렬화 관리자를 만듭니다 (Sitecore의 상속을받습니다).
이 클래스의 메서드 대부분은 정적 멤버이므로이 방법이 얼마나 쉬운 지 확신 할 수 없습니다. 당신이 재정의/다시 구현해야하는 방법이 하나입니다
public static void DumpItem(string path, Item item)
{
Assert.ArgumentNotNullOrEmpty(path, "path");
Assert.ArgumentNotNull(item, "item");
Directory.CreateDirectory(Path.GetDirectoryName(path));
using (new SecurityDisabler())
{
TextWriter writer = new StreamWriter(File.Create(path));
try
{
ItemSynchronization.WriteItem(item, writer);
}
catch
{
}
writer.Close();
}
}
파일 이름은 당신이 볼 수 있듯이, 항목의 경로에 전적으로 기반으로합니다. 가정하면, 당신은 아마도 .Replace ("$", "! dollartoken!")와 같은 것을 빠져 나와 디시리얼라이저에서 그 반대를 구현할 수 있습니다.
불행히도 많은 작업이 진행됩니다.
익숙한 것 같습니다. 큰 해결 방법은 아니지만 인정합니다. SiteCore 끝에서 물건을 변경하는 것이 확실히 바람직합니다. –