root / trunk / hammock / src / net35 / ICSharpCode.SharpZipLib.Silverlight / Serialization / SerializableString.cs @ 0eea575a
History | View | Annotate | Download (1.5 kB)
1 |
namespace ICSharpCode.SharpZipLib.Silverlight.Serialization |
---|---|
2 |
{ |
3 |
[Serializable] |
4 |
public class SerializableString : SerializableBase |
5 |
{ |
6 |
public string String { get; set; } |
7 |
|
8 |
public SerializableString (string value) |
9 |
{ |
10 |
String = value; |
11 |
} |
12 |
|
13 |
public SerializableString() |
14 |
{ |
15 |
|
16 |
} |
17 |
|
18 |
protected override object GetValue(System.Reflection.FieldInfo field) |
19 |
{ |
20 |
return field.DeclaringType == typeof (SerializableString) ? field.GetValue(this) : null; |
21 |
} |
22 |
|
23 |
public bool Equals(SerializableString other) |
24 |
{ |
25 |
if (ReferenceEquals(null, other)) |
26 |
{ |
27 |
return false; |
28 |
} |
29 |
return ReferenceEquals(this, other) || Equals(other.String, String); |
30 |
} |
31 |
|
32 |
public override bool Equals(object other) |
33 |
{ |
34 |
if (ReferenceEquals(null, other)) |
35 |
{ |
36 |
return false; |
37 |
} |
38 |
if (ReferenceEquals(this, other)) |
39 |
{ |
40 |
return true; |
41 |
} |
42 |
return other.GetType() == typeof (SerializableString) && Equals((SerializableString) other); |
43 |
} |
44 |
|
45 |
public override int GetHashCode() |
46 |
{ |
47 |
return (String != null ? String.GetHashCode() : 0); |
48 |
} |
49 |
|
50 |
protected override void SetValue(System.Reflection.FieldInfo field, object value) |
51 |
{ |
52 |
if (field.DeclaringType == typeof(SerializableString)) |
53 |
{ |
54 |
field.SetValue(this, value); |
55 |
} |
56 |
} |
57 |
} |
58 |
} |