问题列表 - 第4060页

如何使用Reflection获取静态属性

所以这看起来非常基本,但我无法让它发挥作用.我有一个Object,我使用反射来获取它的公共属性.其中一个属性是静态的,我没有运气.

Public Function GetProp(ByRef obj As Object, ByVal propName as String) as PropertyInfo
    Return obj.GetType.GetProperty(propName)

End Function
Run Code Online (Sandbox Code Playgroud)

上面的代码适用于Public Instance属性,到目前为止我只需要它.据说我可以使用BindingFlags来请求其他类型的属性(私有,静态),但我似乎找不到合适的组合.

Public Function GetProp(ByRef obj As Object, ByVal propName as String) as PropertyInfo
    Return obj.GetType.GetProperty(propName, Reflection.BindingFlags.Static Or Reflection.BindingFlags.Instance Or Reflection.BindingFlags.Public)

End Function
Run Code Online (Sandbox Code Playgroud)

但是,请求任何静态成员返回任何内容..NET反射器可以很好地看到静态属性,所以很明显我在这里遗漏了一些东西.

.net reflection static

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

DataTable到JSON

我最近需要将数据表序列化为JSON.我在哪里我们仍然在.Net 2.0,所以我不能在.Net 3.5中使用JSON序列化器.我想这一定是有人做过,所以我去网上找,并发现了一个数量不同 选项.其中一些依赖于一个额外的库,我很难在这里推进.其他人需要先转换List<Dictionary<>>,这似乎有点尴尬和不必要.另一个处理所有值,如字符串.出于某种原因,我无法真正落后于他们,所以我决定推出自己的,我发布在下面.

正如您从阅读//TODO评论中看到的那样,它在一些地方是不完整的.这段代码已经在生产中,所以它在基本意义上"起作用".它不完整的地方是我们知道我们的生产数据当前不会命中它的地方(数据库中没有时间跨度或字节数组).我在这里发帖的原因是我觉得这可能会更好一些,我希望能帮助完成和改进这段代码.欢迎任何投入.

请注意,此功能内置于.Net 3.5及更高版本中,因此今天使用此代码的唯一原因是,您仍然只能使用.Net 2.0.即便如此,JSON.Net已成为此类事物的goto库.

public static class JSONHelper
{
    public static string FromDataTable(DataTable dt)
    {
        string rowDelimiter = "";

        StringBuilder result = new StringBuilder("[");
        foreach (DataRow row in dt.Rows)
        {
            result.Append(rowDelimiter);
            result.Append(FromDataRow(row));
            rowDelimiter = ",";
        }
        result.Append("]");

        return result.ToString();
    }

    public static string FromDataRow(DataRow row)
    {
        DataColumnCollection cols = row.Table.Columns;
        string colDelimiter = "";

        StringBuilder result = new StringBuilder("{");       
        for (int i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

.net c# datatable json .net-2.0

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

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

如何使用fprintf/printf打印短划线或点?

截至目前,我正在使用下面的线来打印出点

fprintf( stdout, "%-40s[%d]", tag, data);
Run Code Online (Sandbox Code Playgroud)

我期待输出会像下面这样,

Number of cards..................................[500]
Fixed prize amount [in whole dollars]............[10]
Is this a high winner prize?.....................[yes]

如何使用fprintf/printf打印短划线或点?

c c++ printf text

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

在IE中设置innerHTML时,<pre>标签会丢失换行符

我正在使用Prototype的PeriodicalUpdater来更新带有ajax调用结果的div.据我了解,div通过设置innerHTML来更新.

div包含在<pre>标签中.在Firefox中,<pre>格式化按预期工作,但在IE中,文本都以一行结尾.

这里有一些示例代码,用于说明问题.在Firefox中,abc是在不同的行上def; 在IE中,它在同一条线上.

    <html>
    <head>
      <title>IE preformatted text sucks</title>
    </head>
    <body>
      <pre id="test">
        a b c
        d e f
      </pre>
      <script type="text/javascript"><!--
      var textContent = document.getElementById("test").innerText;
      textContent = textContent.replace("a", "<span style=\"color:red;\">a</span>");
      document.getElementById("test").style.whiteSpace = "pre";
      document.getElementById("test").innerHTML = textContent;
      --></script>
    </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

有人知道解决这个问题的方法吗?

html javascript css internet-explorer

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

在HTML textarea上模拟HTML输入"maxlength"属性的最佳方法是什么?

HTML文本输入具有称为"maxlength"的属性,由浏览器实现,如果设置在一定数量的字符之后阻止用户输入.

另一方面,HTML textarea元素没有此属性.我的目标是模拟HTML textarea上maxlength的行为.要求:

  • 至少,显示(CSS更改)用户键入太多字符.
  • 理想情况下,阻止用户输入更多字符,就像在HTML输入上一样.

据了解,服务器端验证应该再次检查长度.在这里,我只关注客户端部分.

我的问题是:在HTML textarea上模拟maxlength的最干净的客户端方法是什么?理想情况下,指向您使用过的经过验证的开源JavaScript代码.

html javascript textarea

14
推荐指数
3
解决办法
9333
查看次数

维护多个Visual Studio用户选项(suo)配置文件

我在Visual Studio 2008的两个环境中工作:我的笔记本电脑和笔记本电脑+外接显示器.当我使用第二台显示器时,我喜欢我的解决方案资源管理器和其他非代码窗口在第二台显示器上,而我的笔记本电脑屏幕只是代码文件.当我在环境之间切换时,每天重新排列窗口会有点痛苦.有没有办法更好地管理我的用户选项?我可以在启动VS之前手动切换我的.suo文件,但这似乎也很烦人.有什么建议?

multiple-monitors options visual-studio-2008

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

如何在Test Project代码文件夹中打开文件?(Visual Studio 2008和.NET C#)

当我在Visual Studio上运行测试项目时,我使用下面的代码访问测试项目代码文件夹中的文件

var Location = System.IO.Path.GetDirectoryName(
    System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName
);
var FileLocation = Path.Combine(
            Location
            ,@"..\..\..\TestProject1\App_Data\data.xml"
            );
Run Code Online (Sandbox Code Playgroud)

有另一种(更好的)方式吗?

.net c# unit-testing visual-studio-2008 visual-studio

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

保持括号平衡(Pared为Vim?)

Emacs有Paredit,它可以主动阻止你输入不平衡的括号(C-Q (强制插入文字或其他疯狂).插入打开的paren也会插入一个关闭的paren.在paren上的后退可以删除开始和关闭的paren,也可以两者都不删除.有一些快捷方式可以在新的parens中包含一个简单的单词,从当前封闭的parens中掏出一个单词,扩展parens来啜饮更多附近的单词,等等.

就像是

imap ( ()<Left>
Run Code Online (Sandbox Code Playgroud)

可以让你开始在Vim.但是,在Vim中模仿Paredit的其他更强大功能的最佳方法是什么?

vim emacs parentheses

11
推荐指数
1
解决办法
2412
查看次数

暂存数据库困境

假设有3个数据库

  • 生产
  • 分期
  • 开发

据我所知,Staging数据库需要与Production数据库同步但是,

当我们开发时,我们可以使用Dev数据库和更改模式做任何我们想做的事情.现在来了鸡和鸡蛋问题.

要在Staging中进行测试,需要根据Dev数据库中所做的更改来更改Staging数据库模式.但是Staging数据库需要与Production同步.

你们是如何解决这个问题的?

database staging

10
推荐指数
2
解决办法
2626
查看次数