title: How can I get the original pipeline object when using ValueFromPipelineByPropertyName?
body: <p>I'm building a Cmdlet in C#.</p>
  
  <p>When binding parameters using <code>ValueFromPipelineByPropertyName=true</code>, I often would like to pass the original pipeline object from which the properties were bound back into the pipeline. How can I get a reference to this original object?</p>
  
  <p>So if this is my cmdlet</p>
  
  <pre><code>[Cmdlet(VerbsLifecycle.Start, "Foo")]
  public class StartFooCommand : PSCmdlet
  {
      [Parameter(Position = 0, Mandatory = true, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true)]
      public String Name { get; set; }
  
      protected override void ProcessRecord()
      {
          // Perform various Foo-related activities...
  
          Object pipelineObject = GetTheObjectPassedInFromThePipeline();
  
          WriteObject(pipelineObject);
      }
  }
  </code></pre>
  
  <p>I would like to be able to this in my script</p>
  
  <pre><code># $foo would be some return value from another cmdlet
  $foo = New-Object PSObject -prop @{ Name = "Frank"; Bar = "Baz" }
  $foo | Get-Foo | Use-Foo
  #    ^         ^ Here I want to pass the original $foo object to the next cmdlet
  #    L Name gets bound from my object to my property
  </code></pre>