【问题标题】:How to return an Object in WCF Web Service?如何在 WCF Web 服务中返回对象?
【发布时间】:2011-05-05 05:25:05
【问题描述】:

我有一个返回 Object-I 的 WCF 服务。 Object-I 是 List、String X、List 的集合。我的 WCF 服务运行没有任何错误并返回它但是当我在我的 silverlight 应用程序中调用它时,我无法读取这个对象-I。 请帮帮我

//WCF Service Interface
     [ServiceContract]
        public interface IUserConfiguration
        {
            [OperationContract]
            userlistresponse GetUser();
        }

     [DataContract]
        public class userlist
        {
            [DataMember]
            public string UserID { get; set; }
            [DataMember]
            public string UserName { get; set; }
            [DataMember]
            public string Password { get; set; }
            [DataMember]
            public string User_Type { get; set; }
            [DataMember]
            public string Salutation { get; set; }
            [DataMember]
            public string First_Name { get; set; }
            [DataMember]
            public string Middle_Name { get; set; }
            [DataMember]
            public string Last_Name { get; set; }
            [DataMember]
            public int User_Level { get; set; }
            [DataMember]
            public string Address { get; set; }
            [DataMember]
            public string City { get; set; }
            [DataMember]
            public string State { get; set; }
            [DataMember]
            public string Pincode { get; set; }
            [DataMember]
            public string Landmark { get; set; }
            [DataMember]
            public string Landline1 { get; set; }
            [DataMember]
            public string Landline2 { get; set; }
            [DataMember]
            public string Landline3 { get; set; }
            [DataMember]
            public string Mobile { get; set; }
            [DataMember]
            public string Email { get; set; }
            [DataMember]
            public string Status { get; set; }
            [DataMember]
            public string Token { get; set; }
            [DataMember]
        }

        [DataContract]
        public class ErrorManager
        {
            public string Error_ID { get; set; }
            public string Field { get; set; }
        }       

        [DataContract]
        public class userlistresponse
        { 
            public List<userlist> usersdetails { get; set; }
            public bool Flag { get; set; }
            public List<ErrorManager> Error { get; set; }
        }

//WCF Service Implementation
 public userlistresponse GetUser() 
        {
            userlistresponse ErrorUser = new userlistresponse();
            try
            {
                    DALUsersDetails DUD = new DALUsersDetails();
                    return DUD.GetUserDetails();                
            }
            catch (Exception Ex)
            {
                ErrorUser.Error.Add(new ErrorManager {Error_ID = "SUR0000",Field = Ex.Message.ToString()});
                ErrorUser.Flag = false;
            }
            return ErrorUser;
        }
//DATA ACCESS LAYER Just Returns a List From DataBase

这里一切正常。可以在 Silverlight 应用程序中调用 WCF 服务并使用该方法。

//Silverlight Application

 public Searchuser()
        {
            InitializeComponent();
            UserConfigurationClient UserClient = new UserConfigurationClient();                        
            UserClient.GetUserCompleted += new EventHandler<GetUserCompletedEventArgs>(UserClient_GetUserCompleted);
            UserClient.GetUserAsync();
                   }
             void UserClient_GetUserCompleted(object sender, Proto.UserReference.GetUserCompletedEventArgs e) 
        {
            if (e.Result != null)
            {
                Proto.UserReference.userlistresponse user = new userlistresponse();                
                user = e.Result;//Its Just Returns a string.
                if(user.flag == false)

//Here is the Problem- The Object User[userlistresponse] does not shows or exposes the member inside that object.


             {
                           .......................//some code 
             }


            }
        }   

【问题讨论】:

  • 嗯...给我们看一些代码,这样我们就不用玩猜谜游戏了。

标签: silverlight wcf


【解决方案1】:

如果您对类使用[DataContract],您应该为所有不想跳过的属性包含[DataMember] 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    相关资源
    最近更新 更多