Imagine we have a mutable struct (yes, don\'t start):
struct
public struct MutableStruct { public int Foo { get; set; } public override string
I've posted a solution using Expression Trees for setting fields in another thread. It's trivial to change the code to use properties instead: