{"record":{"id":"b179bb2076b3bc28","repo":"dotnet/wpf","slug":"sr-dataobject-emptyformatnotallowed-b179bb","errorCode":null,"errorMessage":"SR.DataObject_EmptyFormatNotAllowed","messagePattern":"SR\\.DataObject_EmptyFormatNotAllowed","errorType":"exception","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/DataObjectPastingEventArgs.cs","lineNumber":55,"sourceCode":"        /// A flag indicating whether this operation is part of drag/drop.\n        /// Pasting event is fired on drop.\n        /// </param>\n        /// <param name=\"formatToApply\">\n        /// String identifying a format an editor has choosen\n        /// as a candidate for applying in Paste operation.\n        /// An application can change this choice after inspecting\n        /// the content of data object.\n        /// </param>\n        public DataObjectPastingEventArgs(IDataObject dataObject, bool isDragDrop, string formatToApply) //\n            : base(System.Windows.DataObject.PastingEvent, isDragDrop)\n        {\n            ArgumentNullException.ThrowIfNull(dataObject);\n\n            ArgumentNullException.ThrowIfNull(formatToApply);\n\n            if (formatToApply == string.Empty)\n            {\n                throw new ArgumentException(SR.DataObject_EmptyFormatNotAllowed);\n            }\n\n            if (!dataObject.GetDataPresent(formatToApply))\n            {\n                throw new ArgumentException(SR.Format(SR.DataObject_DataFormatNotPresentOnDataObject, formatToApply));\n            }\n\n            _originalDataObject = dataObject;\n            _dataObject = dataObject;\n            _formatToApply = formatToApply;\n        }\n\n        #endregion Constructors\n\n        //------------------------------------------------------\n        //\n        //  Public Properties\n        //","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/dotnet/wpf/blob/81131a70a4c573cd62748a5c36908fc4d662daa9/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/DataObjectPastingEventArgs.cs#L37-L73","documentation":"The DataObjectPastingEventArgs constructor throws ArgumentException when the formatToApply string is empty. A paste event args object must name a concrete data format that exists on the supplied DataObject; an empty string can never satisfy that, so the constructor rejects it up front. This guards callers constructing the args (or subclasses raising the Pasting event) from producing an unusable event payload.","triggerScenarios":"Calling new DataObjectPastingEventArgs(dataObject, isInDragDrop, formatToApply) with formatToApply == string.Empty; also triggered by subclass constructors passing an empty format string up to the base constructor.","commonSituations":"Reading the format from config/clipboard metadata where the field defaults to empty string; wiring a custom paste handler before any format was selected; string concatenation producing '' when a variable is null.","solutions":["Pass a real format string such as DataFormats.Text or a format present on the dataObject","Check string.IsNullOrEmpty(formatToApply) before constructing the args","Query dataObject.GetFormats() and use one of the returned formats"],"exampleFix":"// before\nvar args = new DataObjectPastingEventArgs(dataObject, false, selectedFormat ?? string.Empty);\n// after\nvar format = string.IsNullOrEmpty(selectedFormat) ? DataFormats.Text : selectedFormat;\nvar args = new DataObjectPastingEventArgs(dataObject, false, format);","handlingStrategy":"validation","validationCode":"if (string.IsNullOrEmpty(formatToApply)) throw new ArgumentException(\"formatToApply must be a non-empty data format\", nameof(formatToApply));","typeGuard":"bool IsValidFormat(IDataObject data, string format) => !string.IsNullOrEmpty(format) && data.GetDataPresent(format);","tryCatchPattern":"try { var args = new DataObjectPastingEventArgs(dataObject, false, format); }\ncatch (ArgumentException) { /* fall back to DataFormats.Text or GetFormats()[0] */ }","preventionTips":["Default missing formats to DataFormats.Text instead of empty string","Validate format strings with GetDataPresent before constructing event args","Never concatenate nullable strings into format names"],"tags":["wpf","argumentexception","clipboard","empty-string"],"backgroundTag":"empty-required-field","analyzedSha":"81131a70a4c573cd62748a5c36908fc4d662daa9","analyzedAt":"2026-09-14T10:12:48.479Z","contentChangedAt":"2026-09-14T10:12:48.479Z","schemaVersion":2},"datasetVersion":"2026-09-21T21:30:21.729Z"}