• WCF中的自定义类中包括自定义枚举类型时出错


    现有自定义类型EventLogItem:

    View Code
    public class EventLogItem
    {
    public int EventID
    {
    get;
    set;
    }
    public EventLevel EventType
    {
    get;
    set;
    }
    public string EventTime
    {
    get;
    set;
    }
    public string EventTask
    {
    get;
    set;
    }
    public string EventUser
    {
    get;
    set;
    }
    public string EventSource
    {
    get;
    set;
    }
    public string EventIP
    {
    get;
    set;
    }
    public string EventMessage
    {
    get;
    set;
    }
    }

    自定义枚举类型EventLevel:

    View Code
    public enum EventLevel
    {
    Warning,
    Infomation
    }

    WCF中定义的函数:

    View Code
    //sqlCore.getUserLogs()返回类型为List<EventLogItem>
    [OperationContract]
    public List<EventLogItem> getLogs()
    {
    SqlCore sqlCore = new SqlCore();
    return sqlCore.getUserLogs();
    }

    现在客户端调用WCF服务中的方法:

    View Code
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
    SeAdminSvc.SeAdminClient client = new SeAdminSvc.SeAdminClient();
    client.getLogsCompleted+=new EventHandler<SeAdminSvc.getLogsCompletedEventArgs>(client_getLogsCompleted);
    client.getLogsAsync();
    }
    private void client_getLogsCompleted(object sender, SeAdminSvc.getLogsCompletedEventArgs e)
    {
    dataGrid.ItemsSource = null;
    dataGrid.AutoGenerateColumns = true;
    dataGrid.ItemsSource = e.Result;
    }

    编译后运行程序,将会收到一个异常:  “e.Result”引发了“System.Reflection.TargetInvocationException”类型的异常

    其实这就是由于自定义枚举类型导致的,如果将自定义枚举类型换成String类型,问题便可迎刃而解。



     

  • 相关阅读:
    MySQL中的事务
    MySQL中的锁
    MySQL查询更新所有满足条件的数据
    MySQL存储引擎
    MySQL架构
    MySQL中存储json格式数据
    Java反射破坏单例模式
    合唱队(华为OJ)
    Java实现生产者消费者问题
    Spring IOC + AOP 的实现
  • 原文地址:https://www.cnblogs.com/tgcoy/p/2378218.html
Copyright © 2020-2023  润新知