[英]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();
這很好用,但是我對另一個類做的完全相同,唯一的區別是名為AnalogueObject
和DigitalObject
的類是從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.