public PerformanceCounterDefinition(string path) { Must.NotBeNull(() => path); if (!path.StartsWith("\\")) { throw new ArgumentException("'path' must begin with a '\\'"); } var keyTokens = path.Split(KeySeparator); if (keyTokens.Length < 3) { throw new ArgumentException("'path' must contain a Category and Counter", path); } CategoryName = keyTokens[1]; CounterName = keyTokens[2]; if (CategoryName.Contains("(") && CategoryName.Contains(")")) { var categoryNameTokens = CategoryName.Split('(', ')'); CategoryName = categoryNameTokens[0]; InstanceName = categoryNameTokens[1]; } }
private void CanOnlyContainAlphanumericOrUnderscore(string querySource) { Must.NotBeNull(() => querySource); if (!querySource.All(l => char.IsLetterOrDigit(l) || l == '_')) { throw new ArgumentException("The query source specified for a WMI query can only contain letters, digits or underscore ('_')", querySource); } }
/// <summary> /// Constructs a ComponentModel /// </summary> public ComponentModel(ComponentName name, ICollection <Type> services, Type implementation, Arguments extendedProperties) { componentName = Must.NotBeNull(name, "name"); Implementation = Must.NotBeNull(implementation, "implementation"); this.extendedProperties = extendedProperties; services = Must.NotBeEmpty(services, "services"); foreach (var type in services) { AddService(type); } }
private static string Sanitise(string formatted) { Must.NotBeNull(() => formatted); var charArray = formatted.ToCharArray(); charArray = Array.FindAll(charArray, c => char.IsLetterOrDigit(c) || c == '-' || c == '_' || c == '.'); return(new string(charArray)); }
public WindowsManagementInstrumentationDefinition(string path) { Must.NotBeNull(() => path); var keyTokens = path.Split(KeySeparator); if (keyTokens.Length < 3) { throw new ArgumentException("'path' must contain a QuerySource and PropertyName", path); } QuerySource = keyTokens[1]; CanOnlyContainAlphanumericOrUnderscore(QuerySource); PropertyName = keyTokens[2]; }