public CodeGenerator(ITextTemplatingEngineHost host, ITextTemplatingSessionHost textTemplatingSessionHost, ITextTemplating textTemplating, ISolutionManager solutionManager, string rosMessagesProjectName, string rosMessageTypeAttributeName, string rosMessageTypeAttributeNamespace) { if (null == host) { throw new ArgumentNullException(nameof(host)); } if (null == textTemplatingSessionHost) { throw new ArgumentNullException(nameof(textTemplatingSessionHost)); } if (null == textTemplating) { throw new ArgumentNullException(nameof(textTemplating)); } if (null == solutionManager) { throw new ArgumentNullException(nameof(solutionManager)); } if (string.IsNullOrWhiteSpace(rosMessagesProjectName)) { throw new ArgumentException("Parameter cannot be empty!", nameof(rosMessagesProjectName)); } if (string.IsNullOrWhiteSpace(rosMessageTypeAttributeName)) { throw new ArgumentException("Parameter cannot be empty!", nameof(rosMessageTypeAttributeName)); } if (string.IsNullOrWhiteSpace(rosMessageTypeAttributeNamespace)) { throw new ArgumentException("Parameter cannot be empty!", nameof(rosMessageTypeAttributeNamespace)); } _textTemplatingEngineHost = host; _textTemplating = textTemplating; _textTemplatingSessionHost = textTemplatingSessionHost; _solutionManager = solutionManager; _rosMessageTypeAttributeName = rosMessageTypeAttributeName; _rosMessageTypeAttributeNamespace = rosMessageTypeAttributeNamespace; _defaultNamespace = rosMessagesProjectName; _rosMessageCodeGenerationTemplatePath = _textTemplatingEngineHost.ResolvePath(ROS_MESSAGE_CODE_GENERATION_TEMPLATE_RELATIVE_PATH); _rosMessageCodeGenerationTemplateContent = ReadAllTextFromFile(_rosMessageCodeGenerationTemplatePath); _customTimeDataTemplatePath = _textTemplatingEngineHost.ResolvePath(CUSTOM_TIME_DATA_TEMPLATE_RELATIVE_PATH); _solutionManager.Initialize(); }