in src/PowerShell/Extensions/ResourceExtensions.cs [51:63]
private static void CloneProperties<TInput, TOutput>(TOutput output, TInput input) where TOutput : class, new()
{
foreach (PropertyInfo prop in output.GetType().GetRuntimeProperties())
{
if (input.GetType().GetRuntimeProperty(prop.Name) != null &&
prop.CanWrite &&
!typeof(ICollection).IsAssignableFrom(prop.PropertyType) &&
prop.PropertyType.IsAssignableFrom(input.GetType().GetRuntimeProperty(prop.Name).PropertyType))
{
prop.SetValue(output, input.GetType().GetRuntimeProperty(prop.Name).GetValue(input));
}
}
}