public override void OnGetValue( LocationInterceptionArgs args ) { var instance = args.Instance ?? args.Location.PropertyInfo.DeclaringType; var apply = Apply( instance, args.Location.PropertyInfo ); if ( apply ) { var parameter = new DefaultValueParameter( instance, args.Location.PropertyInfo ); var value = source( parameter ); args.SetNewValue( args.Value = value ); } else { base.OnGetValue( args ); } }
public override object Get( DefaultValueParameter parameter ) { var now = currentTime().Now; var result = parameter.Metadata.PropertyType == typeof(DateTime) ? (object)now.DateTime : now; return result; }
public override object Get( DefaultValueParameter parameter ) => provider.Get( hostType ?? parameter.Metadata.PropertyType );
public override object Get( DefaultValueParameter parameter ) => value()?.ConvertTo( parameter.Metadata.PropertyType );
public override object Get( DefaultValueParameter parameter ) => monitor.Apply() ? null : Item;