Sobes.tech
Middle

C# программалоо контекстинде transient эмне?

sobes.tech AI

AIден жооп

C# контекстинде, transient көбүнчө объекттерди сериалдаштыруу жана десериалдаштыруу механизмдери менен иштөөдө кездешет.

[NonSerialized] модификатору (же DataContractSerializer колдонууда [IgnoreDataMember], же Json.NET колдонууда [JsonIgnore]) классдын талаасын же өзгөчөлүгүн белгилөө үчүн колдонулат, ал маалымат агымына киргизилбеши керек.

Башкача айтканда, мындай талаа же өзгөчөлүк "өткөөлүү" же "убактылуу" болуп саналат жана анын мааниси объектти последовательдүү форматка (мисалы, XML, JSON, бинардык) айландырууда сакталбайт. Кийинки десериализацияда бул талаалар/өзгөчөлүктөр өзүнүн түрүнүн алдын ала белгиленген маанилери менен башталат (мисалы, null шилтемелүү түрлөр үчүн, 0 сандык үчүн, false бул үчүн).

Негизги колдонуу мисалдары:

  • Кэшке сакталган же алынган маалыматтар, десериализациядан кийин кайра эсептелиши мүмкүн.
  • Операциялык тутум ресурстарына же тышкы объекттерге шилтемелер, сериалдаштыруу мүмкүн эмес.
  • Убактылуу абалдар же ара эсептөөлөр.

[NonSerialized] менен мисал:

using System;
using System.Runtime.Serialization;

[Serializable] // BinaryFormatter үчүн зарыл
public class Person
{
    public string Name { get; set; }

    [NonSerialized] // Бул талаа сериалдаштыруу учурунда өткөрүлүп кетет
    public int Age;

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}