forked from IvanMurzak/ReflectorNet
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNestedClass.cs
More file actions
99 lines (86 loc) · 3.05 KB
/
NestedClass.cs
File metadata and controls
99 lines (86 loc) · 3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
using System.Text.Json.Serialization;
namespace com.IvanMurzak.ReflectorNet.OuterAssembly.Model
{
// Non static class with nested classes and static members
public class ParentClass
{
public class NestedClass
{
public static string NestedStaticField = "I am static field";
public static string NestedStaticProperty { get; set; } = "I am static property";
[JsonInclude]
public string NestedField = "I am field";
public string NestedProperty { get; set; } = "I am property";
}
public static class NestedStaticClass
{
public static string NestedStaticField = "I am static field";
public static string NestedStaticProperty { get; set; } = "I am static property";
}
}
// Static class with nested classes and static members
public static class StaticParentClass
{
public class NestedClass
{
public static string NestedStaticField = "I am static field";
public static string NestedStaticProperty { get; set; } = "I am static property";
[JsonInclude]
public string NestedField = "I am field";
public string NestedProperty { get; set; } = "I am property";
}
public static class NestedStaticClass
{
public static string NestedStaticField = "I am static field";
public static string NestedStaticProperty { get; set; } = "I am static property";
}
}
// Wrapper class
public class WrapperClass<T>
{
[JsonInclude]
public T? ValueField;
public T? ValueProperty { get; set; }
public WrapperClass() { }
public WrapperClass(T? valueField, T? valueProperty)
{
ValueField = valueField;
ValueProperty = valueProperty;
}
/// <summary>
/// Echo method that returns the provided value unchanged.
/// Used for testing return type schemas with various generic types.
/// </summary>
public T Echo(T value) => value;
/// <summary>
/// Echo method that returns a nullable version of the provided value.
/// Used for testing return type schemas with nullable generic types.
/// </summary>
public T? EchoNullable(T? value) => value;
}
public class LevelOne
{
public class LevelTwo
{
public class LevelThree
{
public class LevelFour
{
public string DeepProperty { get; set; } = "deep";
}
public LevelFour? NestedInstance { get; set; }
}
public LevelThree? NestedInstance { get; set; }
}
public LevelTwo? NestedInstance { get; set; }
}
public class GenericOuter<T>
{
public class GenericInner<U>
{
public T? OuterValue { get; set; }
public U? InnerValue { get; set; }
}
public GenericInner<T>? SelfReferencingInner { get; set; }
}
}