public CodeExpression TryGenerate(ICodeDomContext context, Type behaviorType) { if (behaviorType != typeof(ReprocessBehavior)) { return(null); } ReprocessAttribute attribute = context.HandlerType.GetCustomAttribute <ReprocessAttribute>(); if (attribute == null) { return(null); } double delay = attribute.DelayBeforeReprocess.TotalMilliseconds; if (delay > 0) { return(new CodeObjectCreateExpression( new CodeTypeReference(typeof(ReprocessBehavior)), new CodePrimitiveExpression(attribute.Count), new CodeMethodInvokeExpression( new CodeTypeReferenceExpression(typeof(TimeSpan)), "FromMilliseconds", new CodePrimitiveExpression(delay) ) )); } return(new CodeObjectCreateExpression( new CodeTypeReference(typeof(ReprocessBehavior)), new CodePrimitiveExpression(attribute.Count) )); }
public CodeExpression TryGenerate(ICodeDomContext context, Type behaviorType) { ICodeDomBehaviorGenerator generator; if (!storage.TryGetValue(behaviorType, out generator)) { onSearchGenerator.TryExecute(behaviorType, out generator); } return(generator.TryGenerate(context, behaviorType)); }
public CodeExpression TryGenerate(ICodeDomContext context, Type behaviorType) { if (generator != null) { CodeExpression result = generator.TryGenerate(context, behaviorType); if (result != null) { return(result); } } if (behaviorType.GetConstructor(new Type[0]) == null) { return(null); } return(new CodeObjectCreateExpression(behaviorType)); }