小编Pet*_*old的帖子

log4net是否支持在日志消息中包含调用堆栈

我希望在log4net消息中包含调用堆栈(例如,调用我的方法).有这样做的标准方法吗?

(我知道这会很慢,但我只需要做一些错误)

.net debugging log4net

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

如何最好地检测XML文件中的编码?

要使用任意编码加载XML文件,我有以下代码:

Encoding encoding;
using (var reader = new XmlTextReader(filepath))
{
    reader.MoveToContent();
encoding = reader.Encoding;
}

var settings = new XmlReaderSettings { NameTable = new NameTable() };
var xmlns = new XmlNamespaceManager(settings.NameTable);
var context = new XmlParserContext(null, xmlns, "", XmlSpace.Default, 
    encoding);
using (var reader = XmlReader.Create(filepath, settings, context))
{
    return XElement.Load(reader);
}
Run Code Online (Sandbox Code Playgroud)

这有效,但打开文件两次似乎有点低效.是否有更好的方法来检测编码,以便我可以这样做:

 1. Open file
 2. Detect encoding
 3. Read XML into an XElement
 4. Close file
Run Code Online (Sandbox Code Playgroud)

xelement encoding xmlreader linq-to-xml

7
推荐指数
1
解决办法
9272
查看次数

如果我在存储过程中有多个select语句,如何使用SqlDataReader

我在Microsoft SQL Server 2005中的存储过程中编写了三个select语句.两个select语句都返回多个记录,select语句的表列表不同.一个选择来自主表的记录,另一个来自子表.在C#代码中,我想获取所有这些记录并将所有数据放在一个对象中.我正在使用SqlDataReader.有可能用它或我应该做别的事情.

stored-procedures sqldatareader multiple-select

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

具有Open Generics的Autofac和在运行时指定的类型

该文档指出Autofac支持开放式泛型,我能够在如下基本情况下注册和解决:

注册:

builder.RegisterGeneric(typeof(PassThroughFlattener<>))
       .As(typeof(IFlattener<>))
       .ContainerScoped();
Run Code Online (Sandbox Code Playgroud)

解决:

var flattener = _container.Resolve<IFlattener<Address>>();
Run Code Online (Sandbox Code Playgroud)

上面的代码工作得很好.但是,假设我不知道在运行之前提供给IFlattener的类型,我想做这样的事情:

object input = new Address();
var flattener = (IFlattener)_container.Resolve(typeof(IFlattener<>), new TypedParameter(typeof(IFlattener<>), input.GetType()));
Run Code Online (Sandbox Code Playgroud)

这可以用AutoFac吗?我从使用StructureMap获得了以下想法:

http://structuremap.sourceforge.net/Generics.htm

我正在努力实现本文中概述的相同目标.

dependency-injection ioc-container autofac

7
推荐指数
2
解决办法
2988
查看次数

使用XNA在游戏窗口中显示矩形

我想将我的游戏网格划分为一个矩形阵列.每个矩形为40x40,每列有14个矩形,总共25列.这涵盖了560x1000的游戏区域.

这是我设置的代码,用于在游戏网格上创建第一列矩形:

Rectangle[] gameTiles = new Rectangle[15];

for (int i = 0; i <= 15; i++)
{
    gameTiles[i] = new Rectangle(0, i * 40, 40, 40);
}
Run Code Online (Sandbox Code Playgroud)

我很确定这是有效的,但当然我无法确认它,因为矩形不会在屏幕上呈现让我亲眼看到它们.我想为调试目的做的是渲染边框,或用颜色填充矩形,这样我就可以在游戏本身上看到它,只是为了确保它有效.

有没有办法让这种情况发生?或者任何相对简单的方法我可以确保这个有效吗?

非常感谢你.

c# grid xna rectangles

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

在DataFormWebPart中动态设置ParameterBinding的DefaultValue

在我在WSS中的自定义aspx页面中,我使用带有xsl文件的DataFormWebPart来呈现一些数据.为了将值传递给xsl,我使用参数绑定.具体来说,我需要传递服务器主机URL,如下所示:

<ParameterBinding 
    Name="HttpHost" 
    Location="CAMLVariable" 
    DefaultValue="http://hardcoded.com" />
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我要做的下一件事是动态获取主机名.因此,弄清楚如何从SharePoint获取它我添加了以下绑定:

<ParameterBinding 
    Name="HttpHost" 
    Location="CAMLVariable" 
    DefaultValue='<%# SPContext.Current.Site.Url.Replace
       (SPContext.Current.Site.ServerRelativeUrl, "") %>' />
Run Code Online (Sandbox Code Playgroud)

现在来问题了.如果在页面中使用其他位置,代码将按预期工作,但使用上述代码SharePoint报告:

Web部件错误:'WebPartPages:DataFormWebPart'的'ParameterBindings'属性不允许子对象.

有人对此有所了解吗?

更新:我已根据本文启用了服务器端代码

asp.net sharepoint dataformwebpart parameterbinding

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

给定一个样式化的WPF DependencyObject,如何在代码中获取样式键?

我有一组绑定到数据的控件,我想在程序上为绑定添加验证器.目前,我能够遍历可视树以找到带有绑定的控件,并将我的验证器添加到这些控件中.但是为了进一步指定哪些控件应该具有特定的验证,我想使用样式.所以我的XAML看起来像这样:

<TextBox Name="someTextBox" Style="{StaticResource optionalNumericTextBox}" />
Run Code Online (Sandbox Code Playgroud)

这里,optionalNumericTextBox样式既可以添加验证错误模板,也可以作为装饰器来指示此文本框应该应用可选的数字验证器.

当我遍历可视树,发现带有绑定的控件,然后需要确定使用的样式时,会出现问题.目前我已经尝试过了

dependencyObject.GetValue(FrameworkElement.StyleProperty)
Run Code Online (Sandbox Code Playgroud)

这给了我一个Style对象,但据我所知,这个对象没有携带'optionalNumericTextBox'值.甚至可以确定密钥,还是XAML阅读器中丢失了这些信息?

wpf styles dependencyobject

6
推荐指数
1
解决办法
1630
查看次数

FxCop或StyleCop中的自定义静态代码分析规则?

如果编写自己的静态代码分析规则(对于C#代码),使用StyleCop和FxCop有什么优缺点?

某种类型的分析比另一种更适合吗?或者是两个在源代码上运行而另一个在编译程序集上运行的区别?

c# fxcop stylecop static-code-analysis

6
推荐指数
1
解决办法
1203
查看次数

使用LINQ重写语句(C#)

是否可以使用lambda(C#)编写下面的内容

private static void GetRecordList(List<CustomerInfo> lstCustinfo)
{
    for (int i = 1; i <= 5; i++)
    {
        if (i % 2 == 0)

            lstCustinfo.Add(new CustomerInfo { CountryCode = "USA", CustomerAddress = "US Address" + i.ToString(), CustomerName = "US Customer Name" + i.ToString(), ForeignAmount = i * 50 });

        else
           lstCustinfo.Add(new CustomerInfo { CountryCode = "UK", CustomerAddress = "UK Address" + i.ToString(), CustomerName = "UK Customer Name" + i.ToString(), ForeignAmount = i * 80 });

    }
}
Run Code Online (Sandbox Code Playgroud)

c# linq

6
推荐指数
1
解决办法
193
查看次数

SQLite FTS3模拟LIKE somestring%

我正在写一本字典应用程序,需要在打字时做通常的单词建议.

LIKE somestring% 相当慢(在~100k行表上约1300ms)所以我转向FTS3.

问题是,我还没有找到一种从字符串开头搜索的理智方式.
现在我正在执行一个类似的查询

SELECT word, offsets(entries) FROM entries WHERE word MATCH '"chicken *"';
Run Code Online (Sandbox Code Playgroud)

,然后在代码中解析偏移字符串.

还有更好的选择吗?

sqlite android fts3

6
推荐指数
1
解决办法
2140
查看次数