小编Gro*_*roo的帖子

如何在C#中将IP地址字符串解析为uint值?

我正在编写使用Windows IP Helper API的C#代码.我试图调用的函数之一是" GetBestInterface ",它采用IP的"uint"表示.我需要的是解析IP的文本表示以创建'uint'表示.

我已经通过谷歌找到了一些例子,比如这个或者这个例子,但我很确定应该有一种标准的方法来实现这一点.唯一的问题是,我找不到这种标准方式.IPAddress.Parse似乎是在正确的方向,但它没有提供任何方式获得'uint'表示...

还有一种方法可以使用IP Helper,使用ParseNetworkString,但同样,我宁愿使用.NET - 我相信我越少依赖pInvoke就越好.

那么,有谁知道在.NET中执行此操作的标准方法?

.net c# networking winapi iphelper

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

基于CakePHP的项目抛出错误,说"参考文献已弃用,返回值为新"

我已将Xampp升级到更新版本(1.7.2).但是现在当我运行我的项目(在CakePHP中完成)时,它正在抛出bug说

Deprecated: Assigning the return value of new by reference is deprecated in
C:\xampp\htdocs\ebayn\cake\libs\debugger.php on line 99

Deprecated: Assigning the return value of new by reference is deprecated in 
C:\xampp\htdocs\ebayn\cake\libs\debugger.php on line 108

Deprecated: Assigning the return value of new by reference is deprecated in 
C:\xampp\htdocs\ebayn\cake\libs\file.php on line 96

Deprecated: Assigning the return value of new by reference is deprecated in
C:\xampp\htdocs\ebayn\cake\libs\cache\file.php on line 89

任何人都可以帮助我,我怎么能纠正这些东西.... ???

提前致谢

cakephp

6
推荐指数
2
解决办法
9820
查看次数

Silverlight确认对话框以暂停线程

我正在尝试使用Silverlight的ChildWindow对象进行确认对话.

理想情况下,我希望它能够工作MessageBox.Show(),整个应用程序停止,直到从用户收到输入.

例如:

for (int i = 0; i < 5; i++)
{
    if (i==3 && MessageBox.Show("Exit early?",
        "Iterator", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
    {
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果用户点击OK,将停止迭代3 ...

但是,如果我要按照以下方式做某事:

ChildWindow confirm = new ChildWindow();
confirm.Title = "Iterator";
confirm.HasCloseButton = false;
Grid container = new Grid();

Button closeBtn = new Button();
closeBtn.Content = "Exit early";
closeBtn.Click += delegate { confirm.DialogResult = true; confirm.Close(); };
container.Children.Add(closeBtn);

Button continueBtn = new Button();
continueBtn.Content = "Continue!";
continueBtn.Click += delegate { …
Run Code Online (Sandbox Code Playgroud)

silverlight confirm dialog childwindow

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

__set/__获取数组属性

想知道是否可以执行以下操作(我知道代码不会按预期工作,只是试图达到目的):

class Form
{
    private $v = array();

    function __set($varName, $varValue)
    {
        ... do some treatment on the varValue ...
        $this->v[$varName] = $varValue;
    }

    function &__get($varName)
    {
        if(!isset($this->v[$varName]))
            $this->v[$varName] = NULL;

        return $this->v[$varName];
    }
};
Run Code Online (Sandbox Code Playgroud)

我希望能够设置一个变量:

$form->Values['whatever'] = 'dirty';

并让它运行setter函数,它将调用一些清理操作,并实际上最终填充其他几个数组,如'HtmlValues'和'SqlValues',所以我可以拉出编码为我想要的格式的值,所以我以后可以调用

echo $form->HtmlValues['whatever'];

问题当然是正常的问题,如果你只是使用_ get,你最终会设置一个返回的值,即使& _get通过引用返回它并做了一些工作,__ set实际上从未被调用,即使你'设置一个私人会员.

所以基本上,我想知道是否有一种方法可以在数组中设置函数时调用一个函数(可能是多个数组深,哪些不喜欢 $form->Values['group']['item'] = 'whatever';

期望的输出将是这样的:

$form->Values['name'] = "&";
echo $form->HtmlValues['name']; = &amp;
Run Code Online (Sandbox Code Playgroud)

(只是为了强化,我不是在寻找实际的编码,只是能够在每个变量上调用它,因为它的设置/更改无需手动编码整个数组)

php

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

通过向命令窗口发送击键来注入命令?

我有一个命令提示符窗口,运行基于Web的软件.我想在C#中创建一个程序,将命令注入到运行命令提示符窗口中.

有什么指针吗?

谢谢,保罗.

c# command-line sendkeys

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

在多线程环境中返回c#中的字典

我已经宣布了一个词典的字典:

Dictionary<String, Dictionary<String, String>> values;
Run Code Online (Sandbox Code Playgroud)

我有一个getter来获取特定索引的字典:

public Dictionary<String,String> get(String idx)
{
    lock (_lock)
    {
        return values[moduleName];
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在多线程环境中工作.我的问题是我需要返回我的字典的副本,以便像这样线程安全:

public Dictionary<String,String> get(String idx)
{
    lock (_lock)
    {
        return new Dictionary<string, string>(values[moduleName]);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我没有,那么调用getter的类会收到一个副本(所以如果我从Dictionary<String, Dictionary<String, String>>遗嘱中删除这个字典它仍然可以工作)?

干杯,

蒂埃里.

c# concurrency dictionary return

6
推荐指数
2
解决办法
1126
查看次数

解析大文本文件,即时修改

我需要实时解析一个大型CSV文件,同时由不同的进程修改(附加).从大到大,我的意思是此时约为20 GB,并且正在缓慢增长.应用程序只需要检测并报告数据流中的某些异常,只需要存储小的状态信息(O(1)空间).

我在考虑每隔几秒轮询文件的属性(大小),打开一个只读流,寻找前一个位置,然后继续解析我第一次停止的位置.但由于这是一个文本(CSV)文件,我显然需要在以某种方式继续跟踪换行符,以确保我总是解析整行.

如果我没有弄错的话,这应该不是一个实现的问题,但我想知道是否有一个共同的方法/库已经解决了一些这些问题?

注意:我不需要CSV解析器.我需要一个关于库的信息,它简化了从动态修改的文件中读取行.

c# csv real-time stream large-files

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

Protobuf-net枚举向后兼容性

我试图在新的应用程序版本中为某个protobuf序列化类添加一个新的枚举值,并且在测试时,注意到以前的版本将抛出异常,给定这种新的文件格式:

An unhandled exception of type 'ProtoBuf.ProtoException' occurred in protobuf-net.dll
Additional information: No {enum-type-name} enum is mapped to the wire-value 3

这是相当明显,它告诉我,没有为没有枚举值int的价值3,但我一直有这样的想法Protocol Buffers的默认零值("默认")枚举值(如果这样的话),在情况实际的枚举值无法映射到.

为了澄清,可以使用以下示例重现这一点(我有意将反序列化步骤转换为另一个类,以模仿试图加载新格式的旧应用程序):

// --- version 1 ---

public enum EnumV1
{
    Default = 0,
    One = 1,
    Two = 2
}

[ProtoContract]
public class ClassV1
{
    [ProtoMember(1)]
    public EnumV1 Value { get; set; }
}



// --- version 2 ---

public enum EnumV2
{
    Default = 0,
    One = 1,
    Two = …
Run Code Online (Sandbox Code Playgroud)

c# enums backwards-compatibility protocol-buffers protobuf-net

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

RichTextBox(.NET Winforms)问题(或替代)

我有.Net的RichTextBox控件的问题.它似乎不支持表格单元格格式化,这很有趣,因为大多数时候我创建表格我希望单元格内容是右对齐的(数字,货币).

如果我尝试在RichTextBox中打开写字板文档,它会忽略(并实际删除)用于单元格对齐的命令.我尝试了几种解决方法,但没有成功.

  1. 谁能想到解决这个问题的想法?(不使用固定宽度的字体和空格)这将是最好的解决方案,因为其他代码已经正常工作,所以如果只需要的东西是一个肮脏的黑客,它会很棒.

  2. 或者,您可以推荐使用.Net Rich Text Editor的开源替代方案吗?我需要一个用户控件,我可以嵌入我的Windows窗体并以编程方式访问内容(创建内容或附加内容).我在网上搜索了一段时间,但发现只有web(Ajax/Javascript)控件.

  3. 我也可以使用HTML WYSIWYG编辑器,但它们基本上都是使用MSHTML嵌入和编辑的IE浏览器,在Winforms应用程序中使用它感觉有点奇怪(也许我错了).在这种情况下,我们需要一些额外的时间来实现HTML的内容生成器 - 尽管它比RTF恕我直言更容易阅读和生成.

  4. 你们为此目的最好的是什么?

.net wysiwyg rtf richtextbox html-editor

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

调试多线程应用程序的建议

我在Visual Studio 2008中逐步调试多线程.NET应用程序时遇到问题.

随着每个阶梯线,Visual Studio变得越来越慢(跳转到下一行需要越来越多的时间)并且通常在几行之后挂起(我得到"Visual Studio忙"气球提示),我需要停止调试.

我怀疑问题是由于应用程序连接了几个TCP/IP客户端,这意味着每次我创建一个断点,他的网络缓冲区都会被填满,直到我继续我的应用程序.每当我使用F10步骤到下一行代码时,Visual Studio会很快唤醒所有其他线程以便它们处理输入数据.

有没有人有这些问题的经验,以及如何避免这些问题的建议?

.net debugging multithreading visual-studio

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