{"record":{"id":"3f45480c27dbbb05","repo":"dotnet/wpf","slug":"invalidenumargumentexception-nameof-format-int-format-typeof","errorCode":null,"errorMessage":"InvalidEnumArgumentException(nameof(format), (int)format, typeof(TextDataFormat))","messagePattern":"InvalidEnumArgumentException\\(nameof\\(format\\), \\(int\\)format, typeof\\(TextDataFormat\\)\\)","errorType":"exception","errorClass":"InvalidEnumArgumentException","httpStatus":null,"severity":"error","filePath":"src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/clipboard.cs","lineNumber":61,"sourceCode":"    public static bool ContainsFileDropList() => ContainsDataInternal(DataFormats.FileDrop);\n\n    /// <summary>\n    ///  Return <see langword=\"true\"/> if Clipboard contains the image format. Otherwise, return <see langword=\"false\"/>.\n    /// </summary>\n    public static bool ContainsImage() => ContainsDataInternal(DataFormats.Bitmap);\n\n    /// <summary>\n    ///  Return <see langword=\"true\"/> if Clipboard contains the text data format which is unicode.\n    ///  Otherwise, return <see langword=\"false\"/>.\n    /// </summary>\n    public static bool ContainsText() => ContainsDataInternal(DataFormats.UnicodeText);\n\n    /// <summary>\n    ///  Return <see langword=\"true\"/> if Clipboard contains the specified text data format which is unicode. \n    ///  Otherwise, return <see langword=\"false\"/>.\n    /// </summary>\n    public static bool ContainsText(TextDataFormat format) => !DataFormats.IsValidTextDataFormat(format)\n        ? throw new InvalidEnumArgumentException(nameof(format), (int)format, typeof(TextDataFormat))\n        : ContainsDataInternal(DataFormats.ConvertToDataFormats(format));\n\n    /// <summary>\n    ///  Permanently renders the contents of the last IDataObject that was set onto the clipboard.\n    /// </summary>\n    public static void Flush() => ClipboardCore.Flush().ThrowOnFailure();\n\n    /// <summary>\n    ///  Get audio data as Stream from Clipboard.\n    /// </summary>\n    public static Stream? GetAudioStream() => GetTypedDataIfAvailable<Stream>(DataFormatNames.WaveAudio);\n\n    /// <summary>\n    ///  Get data for the specified data format from Clipboard.\n    /// </summary>\n    public static object? GetData(string format)\n    {\n        ArgumentException.ThrowIfNullOrEmpty(format);","sourceCodeStart":43,"sourceCodeEnd":79,"githubUrl":"https://github.com/dotnet/wpf/blob/81131a70a4c573cd62748a5c36908fc4d662daa9/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/clipboard.cs#L43-L79","documentation":"Clipboard.ContainsText(TextDataFormat) only accepts text formats (Text, UnicodeText, OemText, Rtf). Any other or undefined TextDataFormat value throws InvalidEnumArgumentException naming the format parameter.","triggerScenarios":"Calling Clipboard.ContainsText with a cast or computed value outside the valid text formats, e.g. (TextDataFormat)7 or TextDataFormat.Html when unsupported by IsValidTextDataFormat.","commonSituations":"Persisting format enums from config/interop and passing them unchecked; assuming all TextDataFormat members are valid; integer round-trips of enum values.","solutions":["Pass only TextDataFormat.Text, UnicodeText, OemText, or Rtf","Validate with Enum.IsDefined / DataFormats.IsValidTextDataFormat before calling","Use the parameterless ContainsText() for default Unicode text"],"exampleFix":"// before\nClipboard.ContainsText((TextDataFormat)rawValue); // may throw\n// after\nvar fmt = (TextDataFormat)rawValue;\nif (DataFormats.IsValidTextDataFormat(fmt)) { Clipboard.ContainsText(fmt); }","handlingStrategy":"validation","validationCode":"bool IsValid(TextDataFormat f) => f is TextDataFormat.Text or TextDataFormat.UnicodeText or TextDataFormat.OemText or TextDataFormat.Rtf;\nif (!IsValid(format)) throw new ArgumentOutOfRangeException(nameof(format));","typeGuard":"static bool IsTextFormat(TextDataFormat f) => Enum.IsDefined(typeof(TextDataFormat), f) && f is TextDataFormat.Text or TextDataFormat.UnicodeText or TextDataFormat.OemText or TextDataFormat.Rtf;","tryCatchPattern":"try { result = Clipboard.ContainsText(format); }\ncatch (InvalidEnumArgumentException ex) { log.Warn($\"Bad TextDataFormat: {format}\", ex); result = false; }","preventionTips":["Only pass literal TextDataFormat members, never raw ints or unvalidated casts","Centralize clipboard access behind a helper that validates formats","Remember not every enum member (e.g. Html) is a valid text format for these APIs"],"tags":["wpf","clipboard","enum-validation"],"backgroundTag":"invalid-enum-value","analyzedSha":"81131a70a4c573cd62748a5c36908fc4d662daa9","analyzedAt":"2026-09-14T10:12:48.479Z","contentChangedAt":"2026-09-14T10:12:48.479Z","schemaVersion":2},"datasetVersion":"2026-09-22T01:17:13.364Z"}