net10 中报错BinaryFormatter

解决.net10 中报错,BinaryFormatter serialization and deserialization are disabled within this application

 安装包System.Runtime.Serialization.Formatters

image

 

双击项目,设置.csproj

  <EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
  <NoWarn>$(NoWarn);SYSLIB0011</NoWarn>

 

 

image

 

 补一个序列化和反序列化的方法

 

 

   public static void BinSerializeAndSaveFile<T>(T obj, string fileName)
   {

       try
       {
           using (FileStream stream= new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
           {
               BinaryFormatter formatter = new BinaryFormatter();
               formatter.Serialize(stream, obj);
               stream.Flush();
           } 
       }
       catch (Exception e)
       { 
       }  
   }
   public static T BinDeserialize<T>(string fileName)
   {
       T t = default(T);
       try
       {
           using (FileStream stream = new FileStream(fileName, FileMode.Open))
           {
               return (T)new BinaryFormatter().Deserialize(stream);
           }
       }
       catch (Exception e)
       {
        
           return t;
       }
   }

 使用: 

        private void SplitButton_Click(object sender, RoutedEventArgs e)
        {
            BinSerializeAndSaveFile(new Person() { Name = "zs", Age = 10 },"D:\\s1.solution");
            Person p= BinDeserialize<Person>("D:\\s1.solution");
        }

 

 

    [Serializable]
    public class Person
    {
        public Person()
        {
        }

        public string Name { get; set; }
        public int Age { get; set; }
    }

 

posted @ 2026-08-31 18:30  JohnnyLei  阅读(7)  评论(0)    收藏  举报