Skip to content

Commit 2112245

Browse files
authored
NonSerializedAttribute F# snippet (#7796)
1 parent 7c36d40 commit 2112245

File tree

3 files changed

+71
-0
lines changed

3 files changed

+71
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<OutputType>Exe</OutputType>
4+
<TargetFramework>net48</TargetFramework>
5+
</PropertyGroup>
6+
7+
<ItemGroup>
8+
<Compile Include="s.fs" />
9+
</ItemGroup>
10+
11+
<ItemGroup>
12+
<PackageReference Include="System.Runtime.Serialization.Formatters" Version="4.3.0" />
13+
</ItemGroup>
14+
15+
<ItemGroup>
16+
<Reference Include="System.Runtime.Serialization.Formatters.Soap" />
17+
</ItemGroup>
18+
</Project>
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// <Snippet1>
2+
open System
3+
open System.IO
4+
open System.Runtime.Serialization.Formatters.Soap
5+
6+
// A test object that needs to be serialized.
7+
[<Serializable>]
8+
type TestSimpleObject() =
9+
let member1 = 11
10+
let member2 = "hello"
11+
let member3 = "hello"
12+
let member4 = 3.14159265
13+
14+
// A field that is not serialized.
15+
[<NonSerialized>]
16+
let member5 = "hello world!"
17+
18+
member _.Print() =
19+
printfn $"member1 = '{member1}'"
20+
printfn $"member2 = '{member2}'"
21+
printfn $"member3 = '{member3}'"
22+
printfn $"member4 = '{member4}'"
23+
printfn $"member5 = '{member5}'"
24+
25+
[<EntryPoint>]
26+
let main _ =
27+
// Creates a new TestSimpleObject object.
28+
let obj = TestSimpleObject()
29+
30+
printfn "Before serialization the object contains: "
31+
obj.Print()
32+
33+
// Opens a file and serializes the object into it in binary format.
34+
let stream = File.Open("data.xml", FileMode.Create)
35+
let formatter = SoapFormatter()
36+
37+
//BinaryFormatter formatter = new BinaryFormatter()
38+
39+
formatter.Serialize(stream, obj)
40+
stream.Close()
41+
42+
// Opens file "data.xml" and deserializes the object from it.
43+
let stream = File.Open("data.xml", FileMode.Open)
44+
let formatter = new SoapFormatter()
45+
46+
let obj = formatter.Deserialize stream :?> TestSimpleObject
47+
stream.Close()
48+
49+
printfn "\nAfter deserialization the object contains: "
50+
obj.Print()
51+
0
52+
// </Snippet1>

xml/System/NonSerializedAttribute.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public event ChangedEventHandler Changed;
8888
8989
:::code language="cpp" source="~/snippets/cpp/VS_Snippets_Remoting/SerializationAttributes/CPP/s.cpp" id="Snippet1":::
9090
:::code language="csharp" source="~/snippets/csharp/System/NonSerializedAttribute/Overview/s.cs" id="Snippet1":::
91+
:::code language="fsharp" source="~/snippets/fsharp/System/NonSerializedAttribute/Overview/s.fs" id="Snippet1":::
9192
:::code language="vb" source="~/snippets/visualbasic/VS_Snippets_Remoting/SerializationAttributes/VB/s.vb" id="Snippet1":::
9293
9394
]]></format>

0 commit comments

Comments
 (0)