小编lan*_*ncz的帖子

Log4net 未记录异常

我已经为我的 C# 应用程序成功设置了 log4net。一切正常,除了当我这样做时:

catch (Exception ex)
{
    if (log.IsErrorEnabled)
       log.Error("test", ex);
}
Run Code Online (Sandbox Code Playgroud)

我得到的只是消息“测试”,我根本没有得到异常。然后,当我这样做时:

catch (Exception ex)
{
    if (log.IsErrorEnabled)
       log.Error(ex);
}
Run Code Online (Sandbox Code Playgroud)

我得到了所需的异常、堆栈跟踪和所有内容。这是可行的,但理想情况下我希望同时拥有消息和异常。

为什么完全相同的代码(没有配置更改)在第一个示例中不起作用,但在第二个示例中却起作用?我对 Error() 方法的阅读文档是否错误?

c# log4net

5
推荐指数
1
解决办法
1万
查看次数

WPF路由事件,订阅自定义事件

我正在尝试使用子控件进行路由事件,这些事件将手动触发这些事件,并且它们将冒泡并在主网格级别处理.我基本上想做这样的事情:

<Grid Name="Root" WpfApplication5:SpecialEvent.Tap="Catcher_Tap">
    <Grid.RowDefinitions>
        <RowDefinition Height="40" />
        <RowDefinition Height="40" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <WpfApplication5:UserControl2 Grid.Row="0" x:Name="Catcher" />
    <WpfApplication5:UserControl1 Grid.Row="1" />
    <Frame Grid.Row="2" Source="Page1.xaml" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

但是,当我跑我的例子,我得到的演示框架空引用,应用程序初始化从来没有,它没有当它试图加载/初始化XAML(在InitializeComponent()).这是包含事件的小文件:

public class SpecialEvent
{
    public static readonly RoutedEvent TapEvent = EventManager.RegisterRoutedEvent(
        "Tap", RoutingStrategy.Direct, typeof(RoutedEventHandler), typeof(UserControl1));

    // Provide CLR accessors for the event
    public event RoutedEventHandler Tap;
}
Run Code Online (Sandbox Code Playgroud)

我基本上想要复制ButtonBase.Click允许父母为他们的孩子订阅任何按钮click()方法的行为.但是,除了ButtonBase.Click()之外,这似乎并不起作用.也就是说,当我将我的自定义切换WpfApplication5:SpecialEvent.Tap="Catcher_Tap"ButtonBase.Click="Catcher_Tap"它的工作原理时.有什么想法吗?什么是ButtonBase,我不做什么?

wpf routed-events

4
推荐指数
1
解决办法
5252
查看次数

标签 统计

c# ×1

log4net ×1

routed-events ×1

wpf ×1