La sérialisation d'erreur lors de la copie et coller à partir d'un contrôle de formulaire windows à un contrôle WPF

0

La question

Nous avons une classe sérialisable l'contient les données à partir du presse-papiers pour passer de windows à partir d'un contrôle de contrôle WPF. Cela a fonctionné dans le cadre de 4,8 après la conversion .Net 5, nous avons maintenant obtiens l'erreur: Type De Système.RuntimeType' en Assemblée de "Système".Privé.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e " n'est pas marqué comme sérialisable.

Cela se produit dans la liste gestionnaire d'événement dans WPF sur la ligne:

var tClip = e.Data.GetDataPresent(typeof(ClipboardDescriptor));

Un " e " le Système de.De Windows.DragEventArgs.

using System;
using System.Windows.Forms;

namespace Support.Classes
{
    /// <summary>
    /// Summary description for ClipboardDescriptor.
    /// </summary>
    [Serializable]
    public class ClipboardDescriptor
    {
        private Guid id;
        private Guid parentDocumentID;
        private System.Type objtype;
        private TreeNode baseTreeNode;
        private string objname;

        public ClipboardDescriptor()
        {
            baseTreeNode = null;
        }

        public Guid ParentDocumentID
        {
            get { return(parentDocumentID); }
            set { parentDocumentID = value; }
        }

        public Guid ID
        {
            get { return(id); }
            set { id = value; }
        }

        public System.Type ObjType
        {
            get { return(objtype); }
            set { objtype = value; }
        }

        public string ObjName
        {
            get { return(objname); }
            set { objname = value; }
        }

        /// <summary>
        /// Get the treenode that this object is associated with
        /// </summary>
        public TreeNode BaseTreeNode
        {
            get { return(baseTreeNode); }
            set { baseTreeNode = value; }
        }
    }
}
.net-5 c# wpf
2021-11-22 21:52:28
1

La meilleure réponse

0

C'est le correctif. Dans ce cas, heureusement, la TreeNode propriété était pas nécessaire et que la propriété TypeName pourraient être ajoutés de sorte que le Type pourrait être récupéré.

using System;

namespace JMPT.Support.Classes
{
    /// <summary>
    /// Summary description for ClipboardDescriptor.
    /// </summary>
    [Serializable]
    public class ClipboardDescriptor
    {
        public Guid ParentDocumentID { get; set; }
        public Guid ID { get; set; }
        [field: NonSerialized]
        public Type ObjType { get; set; }
        public string ObjName { get; set; }
        public string ObjTypeName { get; set; }
    }
}
  
2021-11-23 16:59:35

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................