Use naming rules that keep identifiers consistent, unambiguous, and resilient to change:
private const string VmSubscriptionIdKey = "VM Subscription ID";PropertyBag.ContainsKey(VmSubscriptionIdKey) and PropertyBag[VmSubscriptionIdKey].Tag), even if the underlying type is a map/hashtable.Example (combining both practices):
private const string VmSubscriptionIdKey = "VM Subscription ID";
// ...
if (vmJob.ExtendedInfo.PropertyBag.ContainsKey(VmSubscriptionIdKey))
{
detailedResponse.Properties.Add(
VmSubscriptionIdKey,
vmJob.ExtendedInfo.PropertyBag[VmSubscriptionIdKey]);
}
[Parameter(Mandatory = false, ValueFromPipelineByPropertyName = true)]
[Alias("Tag")]
public Hashtable Tag { get; set; }