public ConverterInfo(TransferableValueToOriginalValueConverter transferableValueToOriginalValueConverter, OriginalValueToTransferableValueConverter originalValueToTransferableValueConverter, Type TransferableValueType) { this.transferableValueToOriginalValueConverter = transferableValueToOriginalValueConverter; this.originalValueToTransferableValueConverter = originalValueToTransferableValueConverter; this.TransferableValueType = TransferableValueType; }
public ParameterValue(IParameter Parameter, object Value, Type TransferableType, OriginalValueToTransferableValueConverter originalValueToTransferableValueConverter, TransferableValueToOriginalValueConverter transferableValueToOriginalValueConverter, bool AllowNullTransferableValues = false) { if (Parameter == null) { throw new ArgumentNullException(nameof(Parameter)); } if (TransferableType == null) { throw new ArgumentNullException(nameof(TransferableType)); } if (originalValueToTransferableValueConverter == null) { throw new ArgumentNullException(nameof(originalValueToTransferableValueConverter)); } if (transferableValueToOriginalValueConverter == null) { throw new ArgumentNullException(nameof(transferableValueToOriginalValueConverter)); } if ((!originalValueToTransferableValueConverter.Target?.GetType()?.IsSerializable) ?? false) { throw new ArgumentException("The converter's target type must be serializable in order to use it accross AppDomains. This error often occurs if you reference any out-of-scope variables in your delegate, if its declaring type is not serializable.", nameof(originalValueToTransferableValueConverter)); } if ((!transferableValueToOriginalValueConverter.Target?.GetType()?.IsSerializable) ?? false) { throw new ArgumentException("The converter's target type must be serializable in order to use it accross AppDomains. This error often occurs if you reference any out-of-scope variables in your delegate, if its declaring type is not serializable.", nameof(transferableValueToOriginalValueConverter)); } this.Value = Value; this.TransferableValueType = TransferableType; this.AllowNullTransferableValues = AllowNullTransferableValues; this.Parameter = Parameter; this.Converter = transferableValueToOriginalValueConverter; this.TransferableValueGetter = new Lazy <object>(() => originalValueToTransferableValueConverter(this.Value)); }