簡體   English   中英

從WCF服務返回服務器端類

[英]Returning server side class from a WCF Service

我認為這是一個奇怪的問題,我在服務器端定義了一些類,然后我通過服務引用進行了引用,其中兩個正在正常工作。 我已經從服務接口中指定了已知的類型:

[ServiceKnownType(typeof(Obj))]
[ServiceKnownType(typeof(DigitalObject))]
[ServiceKnownType(typeof(AnalogueObject))]
[ServiceKnownType(typeof(AttributeType))]
[ServiceKnownType(typeof(AttributeData))]

然后,從Silverlight應用程序中,通過以下方式引用該類:

private ServiceReference.AttributeData commonData = new ServiceReference.AttributeData();

這很好用,但是我對另一個類做的完全相同,唯一的區別是名為AnalogueObjectDigitalObject的類是從Obj類型的類派生的。 你知道發生了什么嗎? 名稱空間都相同,並且我已經重建了Web解決方案並更新了服務引用。

示例類:

using System.ComponentModel;

namespace CapCon2
{
    public class Obj : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;    
        private string _Description;  
        public string ID { get; set; }    
        public string Description
        {
            get { return _Description; }
            set
            {
                _Description = value;
                NotifyPropertyChanged("Description");
            }
        }    
        public void NotifyPropertyChanged(string name)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(name));
            }
        }
    }
}

    public class AttributeData : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    private string _Description;

    public string ID { get; set; }

    public string Description 
    {
        get { return _Description; }
        set 
        {
            _Description = value;
            NotifyPropertyChanged("Description");
        }
    }

    public string Attribute { get; set; }

    public string DataType { get; set; }

    public string Input_InputSource { get; set; }

    public string Output_OutputDest { get; set; }

    public void NotifyPropertyChanged(string name)
    {
        if (PropertyChanged!= null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(name));
        }
    }
}

如果要在服務器和客戶端之間傳遞復雜類型,則應使用DataContract屬性標記它,並使用DataMember標記它的屬性。 這將告訴.NET序列化該對象並將其傳遞到SOAP消息中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM