C#--직렬화 및 반직렬화
2800 단어 C#
객체를 직렬화하려면 다음과 같이 [serializable]를 붙여야 합니다.
[Serializable]
public class user{}
우선 시리얼화된 네임스페이스를 추가해야 합니다. using System.Runtime.Serialization.Formatters.Binary;
/// <summary>
///
/// </summary>
/// <param name="obj"> </param>
/// <param name="file"> </param>
private static void WriteBinary(object obj, string file)
{
using (Stream input = File.OpenWrite(HttpContext.Current.Server.MapPath(file)))
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(input, obj);
}
}
/// <summary>
///
/// </summary>
/// <param name="file"> </param>
/// <returns>object </returns>
public static object ReadBinary(string file)
{
using (Stream outPut = File.OpenRead(HttpContext.Current.Server.MapPath(file)))
{
BinaryFormatter bf = new BinaryFormatter();
object user = bf.Deserialize(outPut);
if (user != null)
{
return user;
}
}
return null;
}
인스턴스 적용:
protected void Page_Load(object sender, EventArgs e)
{
//.dat , , ,
WriteBinary(new user()
{
id = 1,
title = " ",
url = "gzmsg.com",
co = " ",
des=" "
}, "~/upload/data/user.dat");
user user = ReadBinary("~/upload/data/user.dat") as user;
Response.Write(user.des); //
}
[Serializable]
public class user
{
public int id { get; set; }
public string title { get; set; }
public string url { get; set; }
public string co { get; set; }
public string des = string.Empty;
}
만약 일부 필드의 서열화 부분을 서열화하지 않을 필요가 있다면, 우리는 다음과 같은 설정에 따라 실현할 수 있다
[Serializable]
public class user
{
public int id { get; set; }
public string title { get; set; }
public string url { get; set; }
public string co { get; set; }
[NonSerialized]
public string des = string.Empty;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.