我有一系列XML文件,我想從客戶端隱藏,我想僅適用於應用程序。我使用XmlSerializer
對他們進行讀寫。如何才能做到這一點?我閱讀了關於嵌入式資源的內容,但從我所看到的內容來看,我需要使用某種流來讀取和寫入文件。我想知道是否有另一種方法可以讓我使用XmlSerializer
訪問它們並將它們隱藏在客戶端。如何隱藏XML文件內容
回答
如果你只是想隱藏它們(混淆的阻止隨便變化),你可能會考慮壓縮它們。例如對於這個C#反序列化功能的例子:
static T Deserialize<T>(string path, object obj)
{
var serializer = new XmlSerializer(typeof(T));
using (var stream = new GZipStream(File.OpenRead(path),
CompressionMode.Decompress))
{
return (T)serializer.Deserialize(stream);
}
}
您的客戶將看到一個二進制文件,他們將不能夠更改/檢查它(而且它只是一個壓縮流使之不能甚至解壓縮它們)。爲了清楚起見,這相當於序列化功能:
static void Serialize<T>(string path, T obj)
{
var serializer = new XmlSerializer(typeof(T));
using (var stream = new GZipStream(File.Create(path),
CompressionMode.Compress))
{
serializer.Serialize(stream, obj);
}
}
注:在你原來的問題,你沒有說你的環境中任何事物(.NET的Java?),我提供的代碼假設你在C#編程但是您可以將相同的技術應用於您正在使用的任何其他語言/環境。
更新這是一個小的測試程序,看看它是如何工作的:
public class Test
{
public string Name { get; set; }
public string Value { get; set; }
}
class Program
{
static void Main(string[] args)
{
Serialize(@"c:\test.dat", new Test { Name = "A", Value = "B" });
}
// Place here Serialization<T>() method
}
.NET,我忘了提到這一點。這似乎是一個很好的方法,我會嘗試一下,看看它是如何發展的。謝謝 – user2399378
@ user2399378歡迎您。這不是您可以用來保存您的許可證數據(或明智的信息)的東西,但是用於混淆文本文件是很好的,不應該被_super-users_更改/檢查。 –
我有一些情況需要壓縮一些文件,有些則不需要。我修改了序列化方法來處理這些情況,但我不確定是否需要反序列化,我如何檢查文件是否被壓縮? – user2399378
- 1. 如何隱藏xml文件?
- 2. 隱藏內容
- 3. 隱藏:有條件內容
- 4. 隱藏img文件夾內容
- 5. Array.prototype.concat()隱藏內容
- 6. 如何隱藏orchardproject.net中placement.info文件中的列表內容
- 7. 如何通過https獲取隱藏文件的內容?
- 8. 使用自定義XML部件隱藏Word內容控件
- 9. 內容隱藏沒有溢出隱藏
- 10. 隱藏內容而不隱藏div?
- 11. 溢出隱藏隱藏所有內容
- 12. 隱藏內容而不隱藏子類
- 13. 隱藏iframe內的內容?
- 14. 如何隱藏angularjs中的內容?
- 15. 如何隱藏資源內容
- 16. 如何顯示/隱藏內容
- 17. iframe隱藏內容。如何解決它?
- 18. 如何隱藏和切換內容
- 19. 如何隱藏ScrollViewer之外的內容?
- 20. 如何隱藏ColumnDefinition的內容
- 21. 如何隱藏圖像的內容
- 22. 溢出:隱藏;保留內容寬度,但隱藏內容:Chrome
- 23. 隱藏XML文檔
- 24. 如何反轉Xml文件的內容?
- 25. HTML郵件 - 在Outlook.com隱藏內容佔
- 26. 如何隱藏PHP文件
- 27. 如何隱藏源文件
- 28. 如何隱藏JavaScript文件?
- 29. 顯示隱藏的內容
- 30. 隱藏和顯示內容
當你說「隱藏」我猜想簡單的標記文件爲「隱藏」是不能接受的嗎? –
我需要能夠從應用程序中讀取它。如果它被標記爲隱藏,我仍然可以做到這一點? – user2399378
@ user2399378我寫了一個答案,我假設你在談論.NET環境,如果你沒有用更多的細節來標記你的問題,這可能適用於Java,.NET或其他任何與XmlSerializer類的東西... –