public object Clone()
{
var dspMetadata = new DSPMetadata(this.containerName, this.namespaceName);
var emptyResourceTypes = this.resourceTypes.Where(x =>
x.Value.ResourceTypeKind == ResourceTypeKind.ComplexType &&
!x.Value.Properties.Any());
foreach (var resourceType in emptyResourceTypes)
{
AddPrimitiveProperty(resourceType.Value, "empty_content", typeof(byte[]));
}
foreach (var resourceType in this.resourceTypes)
{
dspMetadata.resourceTypes.Add(resourceType.Key, resourceType.Value.Clone());
}
foreach (var resourceSet in this.resourceSets)
{
dspMetadata.resourceSets.Add(resourceSet.Key, resourceSet.Value.Clone(dspMetadata.resourceTypes));
}
return dspMetadata;
}