Changeset 6377 for branches/GP.Grammar.Editor/HeuristicLab.Persistence
- Timestamp:
- 06/07/11 12:49:03 (14 years ago)
- Location:
- branches/GP.Grammar.Editor/HeuristicLab.Persistence/3.3
- Files:
-
- 6 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/GP.Grammar.Editor/HeuristicLab.Persistence/3.3/Core/ConfigurationService.cs
r5445 r6377 42 42 43 43 private static ConfigurationService instance; 44 private static object locker = new object(); 44 45 private readonly Dictionary<IFormat, Configuration> customConfigurations; 45 46 … … 65 66 public static ConfigurationService Instance { 66 67 get { 67 if (instance == null) 68 instance = new ConfigurationService(); 69 return instance; 68 lock (locker) { 69 if (instance == null) 70 instance = new ConfigurationService(); 71 return instance; 72 } 70 73 } 71 74 } -
branches/GP.Grammar.Editor/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/NumberEnumerable2StringSerializer.cs
r5445 r6377 46 46 47 47 private static readonly Dictionary<Type, Type> interfaceCache = new Dictionary<Type, Type>(); 48 private static readonly object locker = new object(); 48 49 49 50 public Type GetGenericEnumerableInterface(Type type) { 50 if (interfaceCache.ContainsKey(type)) 51 return interfaceCache[type]; 52 foreach (Type iface in type.GetInterfaces()) { 53 if (iface.IsGenericType && 54 iface.GetGenericTypeDefinition() == typeof(IEnumerable<>) && 55 numberConverter.CanSerialize(iface.GetGenericArguments()[0])) { 56 interfaceCache.Add(type, iface); 57 return iface; 51 lock (locker) { 52 if (interfaceCache.ContainsKey(type)) 53 return interfaceCache[type]; 54 foreach (Type iface in type.GetInterfaces()) { 55 if (iface.IsGenericType && 56 iface.GetGenericTypeDefinition() == typeof(IEnumerable<>) && 57 numberConverter.CanSerialize(iface.GetGenericArguments()[0])) { 58 interfaceCache.Add(type, iface); 59 return iface; 60 } 58 61 } 62 interfaceCache.Add(type, null); 59 63 } 60 interfaceCache.Add(type, null);61 64 return null; 62 65 } -
branches/GP.Grammar.Editor/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableReflection.cs
r5445 r6377 124 124 /// <param name="storableMemberInfos"></param> 125 125 /// <returns></returns> 126 private static IEnumerable<StorableMemberInfo> DisentangleNameMapping( 127 IEnumerable<StorableMemberInfo> storableMemberInfos) { 126 private static IEnumerable<StorableMemberInfo> DisentangleNameMapping(IEnumerable<StorableMemberInfo> storableMemberInfos) { 128 127 var nameGrouping = new Dictionary<string, List<StorableMemberInfo>>(); 129 128 foreach (StorableMemberInfo storable in storableMemberInfos) { -
branches/GP.Grammar.Editor/HeuristicLab.Persistence/3.3/HeuristicLab.Persistence-3.3.csproj
r6173 r6377 204 204 <Compile Include="Default\Xml\Primitive\SimpleNumber2XmlSerializerBase.cs" /> 205 205 <Compile Include="Default\Xml\Primitive\String2XmlSerializer.cs" /> 206 <Compile Include="Default\Xml\Primitive\System.Drawing\Font2XmlSerializer.cs" /> 206 207 <Compile Include="Default\Xml\Primitive\TimeSpan2XmlSerializer.cs" /> 207 208 <Compile Include="Default\Xml\Primitive\UInt2XmlSerializer.cs" /> -
branches/GP.Grammar.Editor/HeuristicLab.Persistence/3.3/Tests/HeuristicLab.Persistence-3.3.Tests.csproj
r4065 r6377 107 107 </ItemGroup> 108 108 <ItemGroup> 109 <ProjectReference Include="..\..\..\HeuristicLab.Algorithms.GeneticAlgorithm\3.3\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj"> 110 <Project>{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}</Project> 111 <Name>HeuristicLab.Algorithms.GeneticAlgorithm-3.3</Name> 112 </ProjectReference> 109 113 <ProjectReference Include="..\HeuristicLab.Persistence-3.3.csproj"> 110 114 <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project> -
branches/GP.Grammar.Editor/HeuristicLab.Persistence/3.3/Tests/UseCases.cs
r5698 r6377 39 39 using HeuristicLab.Persistence.Interfaces; 40 40 using Microsoft.VisualStudio.TestTools.UnitTesting; 41 using System.Threading.Tasks; 42 using HeuristicLab.Algorithms.GeneticAlgorithm; 41 43 42 44 namespace HeuristicLab.Persistence_33.Tests { … … 1198 1200 public OneWayTest() { this.value = "default"; } 1199 1201 public string value; 1200 [Storable(AllowOneWay =true)]1202 [Storable(AllowOneWay = true)] 1201 1203 public string ReadOnly { 1202 1204 get { return "ReadOnly"; } 1203 1205 } 1204 [Storable(AllowOneWay =true)]1206 [Storable(AllowOneWay = true)] 1205 1207 public string WriteOnly { 1206 1208 set { this.value = value; } … … 1255 1257 } 1256 1258 1257 1259 [TestMethod] 1260 public void FontTest() { 1261 List<Font> fonts = new List<Font>() { 1262 new Font(FontFamily.GenericSansSerif, 12), 1263 new Font("Times New Roman", 21, FontStyle.Bold, GraphicsUnit.Pixel), 1264 new Font("Courier New", 10, FontStyle.Underline, GraphicsUnit.Document), 1265 new Font("Helvetica", 21, FontStyle.Strikeout, GraphicsUnit.Inch, 0, true), 1266 }; 1267 XmlGenerator.Serialize(fonts, tempFile); 1268 var newFonts = XmlParser.Deserialize<List<Font>>(tempFile); 1269 Assert.AreEqual(fonts[0], newFonts[0]); 1270 Assert.AreEqual(fonts[1], newFonts[1]); 1271 Assert.AreEqual(fonts[2], newFonts[2]); 1272 Assert.AreEqual(fonts[3], newFonts[3]); 1273 } 1274 1275 [TestMethod] 1276 public void ConcurrencyTest() { 1277 int n = 20; 1278 Task[] tasks = new Task[n]; 1279 for (int i = 0; i < n; i++) { 1280 tasks[i] = Task.Factory.StartNew((idx) => { 1281 byte[] data; 1282 using(var stream = new MemoryStream()) { 1283 XmlGenerator.Serialize(new GeneticAlgorithm(), stream); 1284 data = stream.ToArray(); 1285 } 1286 }, i); 1287 } 1288 Task.WaitAll(tasks); 1289 } 1258 1290 1259 1291 [ClassInitialize]
Note: See TracChangeset
for help on using the changeset viewer.