Commit Graph

336 Commits

Author SHA1 Message Date
Markus Ewald
2462dd6dc4 Added a C# port of my new Variegator collection, a MultiDictionary that resolves ambiguities by picking a random value or providing the least recently used one, very useful for returning varying responses
git-svn-id: file:///srv/devel/repo-conversion/nusu@286 d2e56fa2-650e-0410-a79f-9358c0239efd
2013-06-27 16:05:54 +00:00
Markus Ewald
4b94bdd1a5 Improved unit test names for the XML helper class
git-svn-id: file:///srv/devel/repo-conversion/nusu@285 d2e56fa2-650e-0410-a79f-9358c0239efd
2013-04-27 21:34:45 +00:00
Markus Ewald
23fe4cfd37 Added some helper methods for building parsers
git-svn-id: file:///srv/devel/repo-conversion/nusu@284 d2e56fa2-650e-0410-a79f-9358c0239efd
2013-04-27 21:14:02 +00:00
Markus Ewald
56cc2cee12 Updated copyright statement for the year 2013
git-svn-id: file:///srv/devel/repo-conversion/nusu@283 d2e56fa2-650e-0410-a79f-9358c0239efd
2013-04-25 13:12:32 +00:00
Markus Ewald
d42aa48236 Updated copyright statement for the year 2013; fixed a warning; minor cosmetic changes
git-svn-id: file:///srv/devel/repo-conversion/nusu@282 d2e56fa2-650e-0410-a79f-9358c0239efd
2013-04-25 13:11:59 +00:00
Markus Ewald
7d4a66e9f2 Some attempts at making this compile on WinRT. Much work remains.
git-svn-id: file:///srv/devel/repo-conversion/nusu@281 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-17 13:03:40 +00:00
Markus Ewald
cc1b8d095a Fixed an invalid XML comment
git-svn-id: file:///srv/devel/repo-conversion/nusu@280 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-14 22:45:17 +00:00
Markus Ewald
c5eb234eef Added MonoDevelop/Unity project for Nuclex.Support
git-svn-id: file:///srv/devel/repo-conversion/nusu@279 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-14 16:10:44 +00:00
Markus Ewald
72511417ef ReverseComparer still used old generic argument naming convention - fixed
git-svn-id: file:///srv/devel/repo-conversion/nusu@278 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-14 15:47:31 +00:00
Markus Ewald
556b9ac0fb Reenabled unit tests for the new Nuclex.Support.Plugins project
git-svn-id: file:///srv/devel/repo-conversion/nusu@277 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-11 09:20:39 +00:00
Markus Ewald
92733d147b Moves services directory into Nuclex.Support.Plugins project
git-svn-id: file:///srv/devel/repo-conversion/nusu@276 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-11 09:05:15 +00:00
Markus Ewald
c9b20cd2cd Moved plugin framework into its own assembly (it's really not such a good idea anymore with the Managed Extensibility Framework and all); added Xbox360 and Windows Phone 7 projects for Nuclex.Support.Transactions
git-svn-id: file:///srv/devel/repo-conversion/nusu@275 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-11 08:57:24 +00:00
Markus Ewald
9ddd8770b2 Added non-generic variant of the TyperHelper.HasAttribute() method
git-svn-id: file:///srv/devel/repo-conversion/nusu@274 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-09 07:13:07 +00:00
Markus Ewald
07d1b026f1 Fixed compilation error in .NET 4.0 build - member in excluded section of code had not been renamed
git-svn-id: file:///srv/devel/repo-conversion/nusu@273 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-09 07:10:25 +00:00
Markus Ewald
9fcee1e872 Windows Phone 7 and Xbox 360 builds now use a Dictionary again
git-svn-id: file:///srv/devel/repo-conversion/nusu@272 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-09 07:05:38 +00:00
Markus Ewald
0637b9d71b Moved another helper method that tests whether a type is carrying an attribute into the TypeHelper class
git-svn-id: file:///srv/devel/repo-conversion/nusu@271 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-08 17:14:42 +00:00
Markus Ewald
97de199705 It seems that contrary to what MSDN says, the Dictionary<K, T> class does not have a constructor accepting an IEqualityComparer on the Xbox 360 or Windows Phone 7; added missing documentation in Pool class
git-svn-id: file:///srv/devel/repo-conversion/nusu@270 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-08 12:05:59 +00:00
Markus Ewald
58a1652749 Added six separate constructors to avoid default parameters (which aren't supported on Windows Phone 7 or the Xbox 360)
git-svn-id: file:///srv/devel/repo-conversion/nusu@269 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-08 11:31:24 +00:00
Markus Ewald
c91a082e84 Pool can now be used with types not derived from IRecyclable and/or without a public default constructor; consolidated type-related helper methods into a common helper class (TypeHelper.cs); optimized GetFieldInfosIncludingBaseClasses() method
git-svn-id: file:///srv/devel/repo-conversion/nusu@268 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-08 11:05:20 +00:00
Markus Ewald
24439da822 Unit tests for the StringBuilderHelper weren't properly localized, containing hard-coded decimal separators - fixed; StringBuilderHelper always used a dot as a decimal separate - behavior changed so it uses the system's current locale (StringBuilderHelper should be identical to the normal StringBuilder except not produce any garbage)
git-svn-id: file:///srv/devel/repo-conversion/nusu@267 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-08 09:55:29 +00:00
Markus Ewald
f3652ac4db Added some read-only attributes to the cloner implementations
git-svn-id: file:///srv/devel/repo-conversion/nusu@266 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-06 13:45:33 +00:00
Markus Ewald
21754b8e87 The expression tree cloner was not able to assign read-only field -- fixed; expanded tests to safeguard against regressions
git-svn-id: file:///srv/devel/repo-conversion/nusu@265 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-06 13:39:02 +00:00
Markus Ewald
4c408a56ad Unit tests for the ObservableSet not also tests the change notification events resulting from union/intersect/except methods; added unit tests for read-only set
git-svn-id: file:///srv/devel/repo-conversion/nusu@264 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-03 15:06:02 +00:00
Markus Ewald
07a9de6283 Some cosmetic changes; all methods in the StringBuilderHelper are now extension methods; added GarbagePolicy enumeration for StringBuilder helper methods; custom Semaphore is not internal in Windows builds to avoid ambiguous symbols
git-svn-id: file:///srv/devel/repo-conversion/nusu@263 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-03 12:45:49 +00:00
Markus Ewald
1a05bf9d63 Added some helper classes for INotifyPropertyChanged; added unit tests for the ObservableSet class; documented the second Count property exposed by the multi dictionary
git-svn-id: file:///srv/devel/repo-conversion/nusu@262 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-03 10:57:08 +00:00
Markus Ewald
df169e376a Removed overridable change notifications from MultiDictionary - accurately sending these would involve considerable overhead; added unit tests for all main interface methods of the MultiDictionary
git-svn-id: file:///srv/devel/repo-conversion/nusu@261 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-02 23:00:02 +00:00
Markus Ewald
b37c4a757c MultiDictionary wasn't firing 'removed' events when an entire set of values is replaced - fixed, but not unit-tested yet; added more unit tests to the ObservableSet class; ObservableSet was not firing the 'added' event - fixed
git-svn-id: file:///srv/devel/repo-conversion/nusu@260 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-02 21:05:05 +00:00
Markus Ewald
0195b34289 The Count property of the multi dictionary now returns either the value count of the number of unique keys depending on which interface it is called from
git-svn-id: file:///srv/devel/repo-conversion/nusu@259 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-01 14:48:53 +00:00
Markus Ewald
ca373846aa Excluded ObservableSet and ReadOnlySet implementations from Xbox 360 and Windows Phone 7 builds because these platforms don't support the ISet interface
git-svn-id: file:///srv/devel/repo-conversion/nusu@258 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-01 14:39:50 +00:00
Markus Ewald
13579c5162 Fixed unit tests that were failing due to the introdcution of the ItemReplaced event; removed NotifyCollectionResetEventArgs if no specialized collections are available
git-svn-id: file:///srv/devel/repo-conversion/nusu@257 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-01 14:05:11 +00:00
Markus Ewald
2d04ad7b49 Added ObservableSet and ReadOnlySet wrappers (no unit tests yet)
git-svn-id: file:///srv/devel/repo-conversion/nusu@256 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-01 13:51:04 +00:00
Markus Ewald
5e4de7f027 Added ItemReplaced() to IObservableCollection
git-svn-id: file:///srv/devel/repo-conversion/nusu@255 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-03-01 12:52:12 +00:00
Markus Ewald
c082960a9a Improved docs
git-svn-id: file:///srv/devel/repo-conversion/nusu@254 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-29 16:40:35 +00:00
Markus Ewald
b6dd615174 Fixed failing unit test due to missing InternalsVisibleToAttribute
git-svn-id: file:///srv/devel/repo-conversion/nusu@253 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-29 16:38:06 +00:00
Markus Ewald
75552b5150 All unit test classes are now internal; updated copyright statement for the year 2012; added hulls for the upcoming ObservableSet<> and ReadOnlySet<> classes; switched generic parameter naming convention TSomething instead of SomethingType
git-svn-id: file:///srv/devel/repo-conversion/nusu@252 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-29 16:27:43 +00:00
Markus Ewald
61c858cb1c CanGetProcessThreadForManagedThread() test now only runs on Windows systems; removed unused variable from expression tree cloner; removed unused variable from unit test of weak collection; fixed test issue parsing command lines relying on current platform being windows; removed unused variable from Semaphore class
git-svn-id: file:///srv/devel/repo-conversion/nusu@251 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-12 13:46:19 +00:00
Markus Ewald
48e016d956 Accidentally made two unit tests public - fixed
git-svn-id: file:///srv/devel/repo-conversion/nusu@250 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-09 13:56:28 +00:00
Markus Ewald
0fdad7c33d There was still an issue with the cloners: private fields in base classes were not cloned properly - problem fixed and unit tests added to prevent regressions
git-svn-id: file:///srv/devel/repo-conversion/nusu@249 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-08 22:18:36 +00:00
Markus Ewald
0290444140 Fixed a bug in the cloners: if a class has properties with only a setter or only a getter, the property-based clones now ignore that property; added a unit test that verifies types without a default constructor can be cloned as well
git-svn-id: file:///srv/devel/repo-conversion/nusu@248 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-08 19:26:05 +00:00
Markus Ewald
48e1674912 Property-based shallow clones of value types are now also working correctly in the expression tree cloner
git-svn-id: file:///srv/devel/repo-conversion/nusu@247 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-08 18:47:45 +00:00
Markus Ewald
d091061baa ExpressionTreeCloner now can create shallow field-based clones of objects without a default constructor (before this, only deep clones worked); search-and-replace fix - some comments referred to something called 'propertys'; all cloners now correctly handle being passed null values (a clone of 'null' is also 'null' per definition)
git-svn-id: file:///srv/devel/repo-conversion/nusu@246 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-08 17:38:20 +00:00
Markus Ewald
15300676ba Streamlined the cloning API: whether a property-based clone is performed is no longer indicated through a parameter, but by calling the appropriate method
git-svn-id: file:///srv/devel/repo-conversion/nusu@245 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-08 17:13:08 +00:00
Markus Ewald
0f2bb60ea5 Fully implemented property-based cloning for the expression tree cloner
git-svn-id: file:///srv/devel/repo-conversion/nusu@244 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-08 16:51:58 +00:00
Markus Ewald
db8c93eabd All cloners are now able to clone objects without default constructors; began work on a property-based expression tree cloner
git-svn-id: file:///srv/devel/repo-conversion/nusu@243 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-08 15:20:39 +00:00
Markus Ewald
91da3679a8 Removed a dead variable when cloning arrays
git-svn-id: file:///srv/devel/repo-conversion/nusu@242 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-08 12:47:35 +00:00
Markus Ewald
cd6cec42d3 Expression tree cloner can now also create shallow field based clones
git-svn-id: file:///srv/devel/repo-conversion/nusu@241 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-08 12:17:35 +00:00
Markus Ewald
e7d1c9720b Arrays of reference types can now be cloned, too - deep expression tree cloner is finished!
git-svn-id: file:///srv/devel/repo-conversion/nusu@240 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-08 11:12:44 +00:00
Markus Ewald
e57140579c Expression tree cloner now clones nested arrays in any depth (inline since deriving from an array is not possible, so it's pretty darn fast!), only scenario left open now is arrays of reference types
git-svn-id: file:///srv/devel/repo-conversion/nusu@239 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-08 11:05:07 +00:00
Markus Ewald
b2e484673d Added more comments and and done some minor refactoring
git-svn-id: file:///srv/devel/repo-conversion/nusu@238 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-06 12:30:59 +00:00
Markus Ewald
28998dbdcf Half way there cloning arrays of complex types - the array copy loop is built and executed correctly
git-svn-id: file:///srv/devel/repo-conversion/nusu@237 d2e56fa2-650e-0410-a79f-9358c0239efd
2012-02-06 11:46:21 +00:00