Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/10/10 15:27:10 (14 years ago)
Author:
epitzer
Message:

add caches for hooks (#900)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableSerializer.cs

    r2990 r2991  
    1919      if (!ReflectionTools.HasDefaultConstructor(type))
    2020        return false;
    21       while (type != null) {       
     21      while (type != null) {
    2222        if (StorableAttribute.GetStorableMembers(type, false).Count() == 0 &&
    2323            !EmptyStorableClassAttribute.IsEmptyStorable(type))
     
    3939    }
    4040
     41    private static readonly object[] defaultArgs = new object[] { true };
     42
    4143    public object CreateInstance(Type type, IEnumerable<Tag> metaInfo) {
    4244      try {
    43         object instance = StorableConstructorAttribute.CallStorableConstructor(type);
    44         if (instance == null)
    45           instance = Activator.CreateInstance(type, true);
    46         return instance;
     45        ConstructorInfo constructor = StorableConstructorAttribute.GetStorableConstructor(type);
     46        return constructor != null ? constructor.Invoke(defaultArgs) :  Activator.CreateInstance(type, true);       
    4747      } catch (TargetInvocationException x) {
    4848        throw new PersistenceException(
Note: See TracChangeset for help on using the changeset viewer.