Updating C# atoms generation to use lazy-loaded dictionary for properties