.NET: Are Dictionary values stored by reference or value
No, it should use the same reference to the original object.
I'm not entirely certain how it will behave if the Dictionary is serialized/deserialized, however.
If Product is a reference type (class and not struct), only a reference will be stored.