public T Get() { var raw = Raw.Get(); T deserialized; string serialized; try { deserialized = Transformation.Deserialize(raw); serialized = Transformation.Serialize(deserialized); } catch (Exception e) { throw new PropertyTransformationException($"Can not transform `{FormatValue(raw)}` to type `{typeof(T)}`", e); } if (serialized != raw) { var message = $"Transformation mismatch.\n" + $"Target type: {typeof(T)}\n" + $"Raw value: {FormatValue(raw)}\n" + $"Deserialized: {FormatValue(deserialized)}\n" + $"Serialized: {FormatValue(serialized)}"; throw new PropertyTransformationException(message); } return(deserialized); }
// Module defining this command // Optional custom code for this activity /// <summary> /// Returns a configured instance of System.Management.Automation.PowerShell, pre-populated with the command to run. /// </summary> /// <param name="context">The NativeActivityContext for the currently running activity.</param> /// <returns>A populated instance of System.Management.Automation.PowerShell</returns> /// <remarks>The infrastructure takes responsibility for closing and disposing the PowerShell instance returned.</remarks> protected override ActivityImplementationContext GetPowerShell(NativeActivityContext context) { System.Management.Automation.PowerShell invoker = global::System.Management.Automation.PowerShell.Create(); System.Management.Automation.PowerShell targetCommand = invoker.AddCommand(PSCommandName); // Initialize the arguments if (ReadCount.Expression != null) { targetCommand.AddParameter("ReadCount", ReadCount.Get(context)); } if (TotalCount.Expression != null) { targetCommand.AddParameter("TotalCount", TotalCount.Get(context)); } if (Tail.Expression != null) { targetCommand.AddParameter("Tail", Tail.Get(context)); } if (Path.Expression != null) { targetCommand.AddParameter("Path", Path.Get(context)); } if (LiteralPath.Expression != null) { targetCommand.AddParameter("LiteralPath", LiteralPath.Get(context)); } if (Filter.Expression != null) { targetCommand.AddParameter("Filter", Filter.Get(context)); } if (Include.Expression != null) { targetCommand.AddParameter("Include", Include.Get(context)); } if (Exclude.Expression != null) { targetCommand.AddParameter("Exclude", Exclude.Get(context)); } if (Force.Expression != null) { targetCommand.AddParameter("Force", Force.Get(context)); } if (Credential.Expression != null) { targetCommand.AddParameter("Credential", Credential.Get(context)); } if (Delimiter.Expression != null) { targetCommand.AddParameter("Delimiter", Delimiter.Get(context)); } if (Wait.Expression != null) { targetCommand.AddParameter("Wait", Wait.Get(context)); } if (Raw.Expression != null) { targetCommand.AddParameter("Raw", Raw.Get(context)); } if (Encoding.Expression != null) { targetCommand.AddParameter("Encoding", Encoding.Get(context)); } if (Stream.Expression != null) { targetCommand.AddParameter("Stream", Stream.Get(context)); } return(new ActivityImplementationContext() { PowerShellInstance = invoker }); }