Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决WCF数据协定的错误-Message=";尝试序列化参数时出错_Wcf_Datacontractserializer_Datacontracts - Fatal编程技术网

如何解决WCF数据协定的错误-Message=";尝试序列化参数时出错

如何解决WCF数据协定的错误-Message=";尝试序列化参数时出错,wcf,datacontractserializer,datacontracts,Wcf,Datacontractserializer,Datacontracts,我在两个不同的名称空间中有两个相同内容的数据契约。我已将一个数据合同复制到另一个数据合同 传递给特定的方法。但它给出了以下错误并抛出异常。它不会采用那种方法 请告诉我有关如何解决此问题的任何想法/建议。感谢您的帮助: 异常错误: {“Type”System.Collections.Generic.List`1[[GlobalWcfServiceLib.TopicDetailsInfo,GlobalWcfContracts,Version=1.2.2.0,Culture=neutral, Publ

我在两个不同的名称空间中有两个相同内容的数据契约。我已将一个数据合同复制到另一个数据合同

传递给特定的方法。但它给出了以下错误并抛出异常。它不会采用那种方法

请告诉我有关如何解决此问题的任何想法/建议。感谢您的帮助:

异常错误: {“Type”System.Collections.Generic.List`1[[GlobalWcfServiceLib.TopicDetailsInfo,GlobalWcfContracts,Version=1.2.2.0,Culture=neutral, PublicKeyToken=17c64733a9775004]',数据合约名称为“ArrayOfTopicDetailsInfo:” 不考虑。请考虑使用DATACONTracTeRever或将任何未知的类型添加到列表中。 已知类型-例如,通过使用KnownTypeAttribute属性或 将它们添加到传递给DataContractSerializer的已知类型列表中。“}

Message=“尝试序列化参数时出错 . InnerException消息为“Type”System.Collections.Generic.List`1 [[GlobalWcfServiceLib.TopicDetailsInfo, GlobalWcfContra…

//////

下面是我的场景:我正在将数据从dc复制到新的数据协定,如下所示。复制后,当我执行createsubscriptions方法时,我得到了上述错误。我已经给出了数据协定的详细信息和此问题附带的错误。请参考

Method1(SubscriptionDataContracts dc)
{
SubscriptionDataContract subscriptionDataContract = new SubscriptionDataContract();

              List<SubscriptionTopicInfo> topicsInfo = dc.TopicList;
              List<SubscriptionTopic> newTopicsList = new List<SubscriptionTopic>();
              subscriptionDataContract.ExtensionData = dc.ExtensionData;

              subscriptionDataContract.UserID = dc.UserID;

                for (int i = 0; i < topicsInfo.Count; i++)
                {
                    SubscriptionTopic topic = new SubscriptionTopic();
                    topic.DBHandle = topicsInfo[i].DBHandle;
                    topic.Topic = topicsInfo[i].Topic;
                    topic.Target = topicsInfo[i].Target;
                    newTopicsList.Add(topic);    
                }
                subscriptionDataContract.TopicList = newTopicsList;

                CreateSubscriptions(subscriptionDataContract);   //getting the above mentioned error in another dll after going into this method  
  }
Method1(SubscriptionDataContracts dc)
{
SubscriptionDataContract SubscriptionDataContract=新SubscriptionDataContract();
List topicsInfo=dc.TopicList;
List newTopicsList=新列表();
subscriptionDataContract.ExtensionData=dc.ExtensionData;
subscriptionDataContract.UserID=dc.UserID;
对于(int i=0;i
//////////////////////////////// //我的数据合同

 [DataContract(Name = "TopicDetailsInfo", Namespace = "http://CName.GlobalService")]
    [Serializable]
    public class TopicDetailsInfo
    {        
        protected object topic;        
        protected object baseObjectType;       
        [DataMember]
        public object BaseObjectType
        {
            get
            {
                return baseObjectType;
            }
            set
            {
                baseObjectType = value;
            }
        }

        [DataMember]
        public object TopicID
        {
            get
            {
                return topic;
            }
            set
            {
                topic = value;
            }
        }

        static public TopicDetailsInfo CreateTopic<T, mT>(IComparable<T> objectType, IComparable<mT> objectID)
        {
            var topicDetails = new TopicDetailsInfo();
            topicDetails.BaseObjectType = objectType;
            topicDetails.TopicID = objectID;
            return topicDetails;

        }

    }


    [DataContract(Name = "SubscriptionTopicInfo", Namespace = "http://CName.GlobalService")]
    [KnownType(typeof(List<TopicDetailsInfo>))]
     [Serializable]
    public class SubscriptionTopicInfo
    {
        private object topic;
        private object target;
        private object creator;
        [DataMember]
        public object Topic
        {
            get
            {
                return topic;
            }
            set
            {
                topic = value;
            }
        }
        [DataMember]
        public object Target
        {
            get
            {
                return target;
            }
            set
            {
                target = value;
            }
        }

        [DataMember]
        public object DBHandle
        {
            get
            {
                return creator;
            }
            set
            {
                creator = value;
            }
        }
        static public SubscriptionTopicInfo CreateSubscriptions<T, mT, nT>(IList<TopicDetailsInfo> topic, IComparable<mT> target, IComparable<nT> handle)
        {

            var subscriptionTopic = new SubscriptionTopicInfo();

            subscriptionTopic.Target = target;
            subscriptionTopic.Topic = topic;
            subscriptionTopic.DBHandle = handle;

            return subscriptionTopic;
        }

    }


    [DataContract(Name = "SubscriptionData", Namespace = "http://CName.GlobalService")]
    [KnownType(typeof(List<SubscriptionTopicInfo>))]
    [Serializable]
    public class SubscriptionDataContracts : IExtensibleDataObject
    {
        private ExtensionDataObject extensionDataObjectValue;       
        [DataMember]         
        public string UserID 
        {
            get;
            set;

        }

        [DataMember]
        public string ProjectID 
        {
            get;
            set;

        }
        [DataMember]
        public string FromDiscipline 
        {
            get;
            set;

        }

        [DataMember]
        public string ModuleID 
        {
            get;
            set;

        }

        [DataMember]
        public string SessionID
        {
            get;
            set;

        }

        [DataMember]
        public List<SubscriptionTopicInfo> TopicList
        {
            get;
            set;
        }        
        public ExtensionDataObject ExtensionData
        {
            get
            {
                return extensionDataObjectValue;
            }
            set
            {
                extensionDataObjectValue = value;
            }
        }

}
[DataContract(Name=“TopicDetailsInfo”,命名空间=”http://CName.GlobalService")]
[可序列化]
公共类主题详细信息信息
{        
保护对象主题;
基于对象类型的受保护对象;
[数据成员]
公共对象BaseObjectType
{
收到
{
返回baseObjectType;
}
设置
{
baseObjectType=值;
}
}
[数据成员]
公共对象主题ID
{
收到
{
返回主题;
}
设置
{
主题=价值;
}
}
CreateTopic的静态公共主题详细信息(IComparable objectType、IComparable objectID)
{
var topicDetails=new TopicDetailsInfo();
topicDetails.BaseObjectType=objectType;
topicDetails.TopicID=objectID;
返回主题详细信息;
}
}
[DataContract(Name=“SubscriptionTopicInfo”,命名空间=”http://CName.GlobalService")]
[知识类型(类型(列表))]
[可序列化]
公共类SubscriptionTopicInfo
{
私人客体话题;
私有对象目标;
私有对象创建者;
[数据成员]
公共对象主题
{
收到
{
返回主题;
}
设置
{
主题=价值;
}
}
[数据成员]
公共对象目标
{
收到
{
回报目标;
}
设置
{
目标=价值;
}
}
[数据成员]
公共对象DBHandle
{
收到
{
回归创造者;
}
设置
{
创造者=价值;
}
}
静态公共SubscriptionTopicInfo CreateSubscriptions(IList主题、IComparable目标、IComparable句柄)
{
var subscriptionTopic=新的SubscriptionTopicInfo();
subscriptionTopic.Target=目标;
subscriptionTopic.Topic=主题;
subscriptionTopic.DBHandle=句柄;
返回订阅主题;
}
}
[DataContract(Name=“SubscriptionData”,命名空间=”http://CName.GlobalService")]
[知识类型(类型(列表))]
[可序列化]
公共类SubscriptionDataContracts:IEExtensibleDataObject
{
私有扩展数据对象扩展数据对象值;
[数据成员]
公共字符串用户ID
{
收到
设置
}
[数据成员]
公共字符串投影
{
收到
设置
}
[数据成员]
公共纪律
{
收到
设置
}
[数据成员]
公共字符串模块ID
{
收到
设置
}
[数据成员]
公共字符串SessionID
{
收到
设置
}
[数据成员]
公共列表主题列表
{
收到
设置
}        
公共扩展数据对象扩展数据
{
收到
{
返回扩展数据对象