forked from YAXLib/YAXLib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog.txt
287 lines (251 loc) · 14.2 KB
/
ChangeLog.txt
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
[2.12] February 19, 2013
* Added support for serialization of non-collection fields
in objects derived from collection types/interfaces
* Fixed a bug with namespace data not serialized for collections
passed directly to the serializer
* Fixed a bug where attributes with namespace same as the default
namespace are not serialized properly. Thanks go to [@silwol](https://github.com/silwol)
for reporting this bug.
* Added DynamicKnownTypes to remove dependency to System.Drawing (and potential other dlls)
This will make YAXLib more portable.
* Added support for serializing DataTable and DataSet objects without making
YAXLib dependent to System.Data.dll
[2.11] October 14, 2012
* XML entity names now accept W3C standards.
* Nullable types are not serialized with a `yaxlib:realtype`
attribute any more.
* Fixed some namespace related bugs.
* Fixed an issue with deserializing date-time values that expose
date time kind of UTC during serialization.
* Classes can accept [YAXDictionary] and [YAXCollection]
attributes. The value to these attributes can then be
overridden by members instantiating them.
* Unit tests all migrated to NUnit.
* Lots of thanks go to Asbjørn Ulsberg for migrating the unit-tests
NUnit, reporting the above bugs, and providing failing unit-tests
regarding the above bugs.
* It is now allowed to change the constant values used by the library to
serialize meta-data. For this modify the following properties of the
`YAXSerializer` instance:
`YaxLibNamespaceUri`, `YaxLibNamespacePrefix`,
`DimentionsAttributeName`, `RealTypeAttributeName`
Please see `YAXLibTests` > `OverridingYAXLibMetadataTests.cs` for a an
example of how to achieve this.
[2.10.1] October 4, 2012
* Allowing dashes to appear in name aliases
Thanks go to Asbjørn Ulsberg for fixing the issue and providing
unit tests.
[2.10] October 1, 2012
* Full support for XML Namespaces.
* Defining XML namespaces through [YAXNamespace] attribute which
allows for specifying prefixes also.
* Implicit XML namespace definition wherever there's an option
to define an alias for an xml-attribute or xml-element, like an
expanded name, as in "{path/to/namespace}alias". This support have
been added into YAXSerializeAs attribute, EachElementName property
of the YAXCollection attribute; and KeyName, and ValueName properties
of the YAXDictionary attribute.
* The initial support for XML-namespaces into YAXLib had been brought
by kind community contribution. Special thanks go to Benjamin Pannell,
Tom Glastonbury, and CodePlex user "sttereo3" for starting this.
However full namespace support and vast and various bug fixes
have been performed in current version.
* Added a Visual Studio 2012 solution file.
[2.9] July 22, 2012
* Lots of thanks go to Benjamin Pannell for bringing the support
for XML namespaces into the library. This is brought through the
[YAXNamespace] attribute.
* Support for serializing Guids as XML attributes. Thanks go to
CodePlex user "jtrahan", for reporting this issue.
* Polymorphic serialization now works when creating a serializer
of a base type and passing an object. Thanks go to
Gumar Hermannsson for reporting this issue.
[2.8.3] June 18, 2012
* Fixed the bug of removing elements corresponding to objects with
no properties (such as DBNull, and Random). Thanks go to Robert Baron
for reporting this bug.
* Added support for [YAXPreserveWhitespace] attribute.
* Added PreserveWhitespaceOnClassSample and PreserveWhitespaceOnFieldsSample
sample classes that demonstrate how this attribute works. Whenever this
attribute is added to a field or class, the xml:space="preserve"
XML attribute is added to the corresponding XML element produced to keep
whitespace entries upon deserialization. Thanks go to Robert Baron for
reporting this problem and suggesting the solution.
[2.8.2] June 13, 2012
* YAXLib is now a strongly-named assembly (thanks go to Jonas Fischer
for suggesting and providing the patch for doing this)
* Added a key to help build the project
* Moved the sample classes from Demo-Application to the Test project
* Added the script to build the library with another key, different
from that included in the project higherarchy, to sign the library
with another key, specific to the developer of the library.
[2.8.1] May 8, 2012
* Migrating from SVN to Git
* Fixing the issue with null known-types references, thanks go to
Tom Glastonbury, for reporting this issue (http://yaxlib.codeplex.com/workitem/17676)
and providing the patch.
* Added the XElementKnownType and XAttributeKnownType to the list of
known-types as suggested and provided by Tom Glastonbury.
* Added support for expanded XML names in the form of
"{namespace}elementname", which was reported and patched in
this issue (http://yaxlib.codeplex.com/workitem/17661)
by Tom Glastonbury.
[2.8] January 26, 2012
* Switching to Visual Studio 2010
* Adding support for specifying alias and path-like serialization addresses
together, the alias is seperated from path with a # character:
[YAXAttributeFor("level1/level2#alias")]
Here you don't need to use an extra [YAXSerializeAs("alias")].
* Merging custom deserialization logic with custom serialization. Therefore,
in order to make use of custom serialization capability one needs only to
implement ICustomSerializer<>, and use the attribute YAXCustomSerializer on
the desired field or type. The deserialization logic is also included in them.
* Fixing the bug in XMLUtils.CreateLocation method, which did not create locations
for which a portion a location already existed.
* Adding support that any field that uses YAXCustomSerializer attribute
can be serialized as an XML-attribute or value for another element. The
type that implements the custom serializer is responsible for creating the
required attribute or value.
* Adding support for collections that are serialized serially, to be also
serialized as an attribute or value for another element.
* Fixed a bug resulting from serializing a collection element through
a reference whose fields are serialized in other elements.
Thanks go to CodePlex user: GraywizardX (http://www.codeplex.com/site/users/view/GraywizardX)
Related discussion: http://yaxlib.codeplex.com/discussions/287166
[2.7] June 22, 2011
* Fixing the bug that the primitive or basic types are not serialized
if directly passed as an object to the serializer.
Thanks go to Code Project user, FCBCoder, for reporting this bug.
[2.6] May 25, 2011
* Making YAXLib to serialize collection of objects which are stored through
a reference to their base class, to be serialized with their class name or
user-defined alias, instead of the base class name as the xml-element name.
Thanks go to Seer Tenedos and Lars Udengaard for suggesting this.
[2.5] May 10, 2011
* Fixing the bug that serialization and deserialization of decimal
values were not supported. Thanks go to Janko D, for submitting reporting
the bug and submitting the patches (#9334 and #9335).
* Forcing YAXLib to serialize values in the invariant culture. This neutralizes
the changes made in version 2.4, and fixes the issue #14150 in another way.
[2.4] February 13, 2011
* Fixing issue #14150. Now the serialized data follow the active culture
of the serializing thread. The limitation is that the culture of the
deserializer's thread must be the same, otherwise it is possible that
some parsing exception occur.
[2.3] February 13, 2011
* Fixing a threading bug by making the type-wrappers pool thread safe.
[2.2] July 7, 2010
* Adding support for definition of custom serializer and deserializers.
This is done through the YAXCustomSerializerAttribute, and
YAXCustomDeserializerAttribute.
See SampleClasses.CustomSerializationTests for an example.
* Changing back retreived element values to regular strings, not including
representation of their child elements.
[2.1] July 5, 2010
* Adding support for srializing fields as a value for another element. This
is done through YAXValueFor attribute.
* Added YAXElementValueAlreadyExistsException, and YAXElementValueMissingException
exception classes to handle related exceptions.
* Added BookClassTesgingSerializeAsValue sample class to demonstrate the new feature.
[2.0] April 15, 2010
* YAXLib
* Adding support for serialization and deserialization for all known generic
and non-generic collection classes in System.Collections, and
System.Collections.Generic.
* Adding support for recursive serialization of collections without serializing
an element for their enclosing collection.
* Adding support for specifying path-like serialization addresses,
e.g., elem1/elem2/elem3, and ../elem1, and ./elem1
* Adding support for specifying aliases for enum members.
* Adding support for choosing the fields to serialize (public, or non-public
properties, or member varialbes).
* Adding support for serialization and deserialization of objects through
a reference to their base-class or interface.
* Adding support for multi-stage deserialization.
* Adding support for serialization of single-dimensional, multi-dimensional,
and jagged arrays.
* Adding unit-tests for several parts of the library.
[1.1.5] Feb 22, 2010
* YAXLib
* Adding support to deserialize some known built-in .NET Types. Starting from TimeSpan.
* Thanks go to James South; for reporting this problem for type TimeSpan
[1.1.4] Feb 22, 2010
* YAXLib
* Changing the style of the whole library, so that it matches StyleCop guidelines.
* A lot of thanks go to James South; for his kind efforts for cleaning up the code,
and leaving documentation of 12 methods only to me.
[1.1.3] Jan 28, 2010
* YAXLib/YAXSerializer.cs:
Fixing the bug of reading value from an attribute pertaining to an absent parent element.
Thanks go to Donovan Solms for reporting this bug.
[1.1.2] May 15, 2009
* YAXLib/YAXSerializer.cs:
Adding support for serializing property-less objects, that expose the
IFormattable interface (e.g., the Guid struct).
Thanks go to Wayne Hiller for reporting this problem.
[1.1.1] May 6, 2009
* YAXLib/YAXSerializer.cs:
Fixing some bug related to nested collection classes.
Thanks go to Jiri Steuer for reporting this bug.
[1.1] April 13, 2009
* Updating the article
* Fixing some minor bugs
* Enhancing the demo application
[1.0.10] April 12, 2009
* YAXLib/YAXSerializer.cs, YAXLib/YAXExceptionHandlingPolicies.cs:
Added an Ignore item to the YAXExceptionTypes enum.
Added YAXSerializationOptions enum, and a corresponding argument to the
YAXSerializer constructor, which currently lets the developer choose
whether to serialize null properties or not.
If the developer chooses DontSerializeNullObjects as an option, then
the serialization and deserialization processes keep the null properties
status intact. Also the developer may select the error type of those properties
to Ignore (via the ErrorIfMissed attribute or at construction time), so that
their absence is not reported as a problem.
[1.0.9] April 11, 2009
* YAXLib/YAXAttributes.cs, YAXLib/YAXSerializer.cs:
Added the support for inserting comments through the [YAXComment] attribute.
The comments are only applicable to classes.
[1.0.8] April 11, 2009
* DemoApplication:
Added a GeneralToString provider which convert an object to string based upon its
public properties via Reflection. This method is careful about null references, therefore
we will not observe NullReferenceException in ToString methods.
[1.0.7] April 10, 2009
* YAXLib/YAXAttributes.cs, YAXLib/YAXSerializer.cs:
added the [YAXNotCollection] attribute. If some class implements the IEnumerable
interface, it is known by YAXLib as a collection class. This attribute prevents
YAXLib to just iterate through the items provided through the IEnumerable interface;
but to serialize the actual properties of the class, just as the way it is done with
other classes.
[1.0.6] April 10, 2009
* YAXLib/YAXAttributes.cs, YAXLib/YAXSerializer.cs:
added support for controlling the serialization behaviour of generic dictionary
classes via YAXDictionary attribute. With this attribute one can specify:
- aliases for key and value parts
- whether key/value should be serialized as XML attribute or XML element.
- the format strings for serializing key/value parts.
[1.0.5] April 09, 2009
* YAXLib/YAXAttributes.cs, YAXLib/YAXExceptions, YAXLib/YAXSerializer.cs:
adding support for format strings which could be used while serializing
objects with the given formats. Added YAXFormatAttribute, and
YAXInvalidFormatProvided exception class.
[1.0.4] April 05, 2009
* YAXLib/YAXAttributes.cs, YAXLib/YAXSerializer.cs:
adding support for ignoring whitespace characters, while deserializing
serially serialized collection classes, through IsWhiteSpaceSeparator
property of YAXCollectionAttribute class.
[1.0.3] March 26, 2009
* YAXLib/YAXSerializer.cs:
fixing the bug, that the library did not ignore static properties.
[1.0.2] March 25, 2009
* YAXLib/YAXSerializer.cs:
fixing the bug on deserializing null nested objects.
Thanks go to Anton Levshunov for reporting this bug.
[1.0.1] March 24, 2009
* YAXLib/YAXSerializer.cs:
fixing the bug that deserializing collection classes
attributed as [YAXDontSerialize] lead to a NullReferenceException.
Thanks go to Peter Zacho for reporting this bug.
[1.0.0] March 13, 2009
* First version