问题列表 - 第4582页

将注释[元数据]添加到文件

我很确定这可能只是不确定它的用语是什么以及如何做到这一点.基本上,如果您右键单击任何文件并转到属性然后摘要,则可以向文件添加注释等.

我想知道的是你如何从c#中解决这个问题.此外,一旦添加了注释,您如何在后一时间从文件中读取这些注释.

我确信它与文件的元数据有关,只是不知道去哪里看.我还需要在Windows窗体中执行此操作,因此权限不是那么大的问题.

提前致谢.

c# windows winforms

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

freemarker中的交替表行颜色

使用freemarker进行备用行着色的好方法是什么?

这真的是最好的方式吗?

<#assign row=0>
<#list items as item>
    <#if (row % 2) == 0>
        <#assign bgcolor="green">
    <#else>
        <#assign bgcolor="red">
    </#if>
    <tr style='background-color: ${bgcolor}'><td>${item}</td></tr>
    <#assign row = row + 1>
</#list>
Run Code Online (Sandbox Code Playgroud)

我试过这样做:

<#assign row=0>
<#list items as item>
    <tr style='background-color: ${(row % 2) == 0 ? "green" : "blue"}'><td>${item}</td></tr>
    <#assign row = row + 1>
</#list>
Run Code Online (Sandbox Code Playgroud)

但显然你不能在那里使用三元运算符.

注意:我想我之前应该提到它,但我不能使用css类或javascript,因为这个HTML会进入电子邮件消息.

templates freemarker

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

如何打开OO风格的管道?

我用新的样式重写了我的旧代码,如下所示:

#old style
open(FD,"file");

#new style
$fh = IO::File->new("file","r");
Run Code Online (Sandbox Code Playgroud)

文件还可以,但我不知道如何打开管道.

# read from pipes.
open(PIPE,"some_program |");

# write to pipes.
open(PIPE,"| some_program");
Run Code Online (Sandbox Code Playgroud)

如何处理OO Style IO中的管道?

补充:
感谢Jonathan,没关系.

# read from pipes.
$pipe = IO::Pipe->new;
$pipe->reader('some_program');
$data = <$pipe>;

# write from pipes.
$pipe = IO::Pipe->new;
$pipe->writer('some_program');
print $pipe "foo,bar,baz";
Run Code Online (Sandbox Code Playgroud)

perl pipe

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

保护.NET代码免受逆向工程?

混淆是一种方式,但它无法防止破坏应用程序的盗版保护安全性.我如何确保应用程序不被篡改,以及如何确保注册机制不能被反向工程?

此外,可以将C#应用程序转换为本机代码,而Xenocode代价太高.

C#提供了很多的功能,并且是我的代码的理想语言,所以下再次写入整个代码库++是出了问题.

可以从.NET中的签名程序集中轻松删除安全证书.

.net c# obfuscation reverse-engineering

481
推荐指数
19
解决办法
23万
查看次数

Debug.Assert vs Exceptions

令人惊讶的我才能够找到SO关于这个主题的一个先前的问题,我只是想获得社会"信任投票"(或不!)我的做法.

我这样看是这样的:

  • Debug.Assert你的处置将是真实的状态的事情.当我们完全控制我们的环境时,例如在验证某些前后条件的方法中,将使用此方法.
  • 在出现特殊情况时使用例外情况.处理外部资源,即文件,数据库,网络等是很容易的.但...

在以下场景中它有点模糊.请注意,这是一个仅供参考的示例!

假设我们有MyClass类,它有一个公共属性MyMode和一个方法GetSomeValueForCurrentMode().将MyClass视为一个打算在库中发布(发布版本)以供其他开发人员使用的版本.

我们希望MyMode可以由此类的外部用户更新.现在,GetSomeValueForCurrentMode()有以下逻辑:

switch(MyMode)
{
case Mode.ModeA:
return val1;
case Mode.ModeB:
return val2;
default:
//Uh-uh this should never happen

}
Run Code Online (Sandbox Code Playgroud)

我在这里得到的是MyClass的用户将其置于无效状态.那我们该怎么办?

在默认情况下,我们应该Debug.Assertthrow new InvalidOperationException(或其他)?

有一句咒语说我们不应该信任我们班级的用户.如果我们选择Debug.Assert并将MyClass构建为发布版本(从而删除Debug Asserts),则该类的用户将无法获得他们将其置于无效状态的有用信息.但这与其他咒语相反,后者只表示在完全无法控制的事情发生时抛出异常.

我发现我围绕着这个问题 - 其中一个编程辩论似乎没有明确的'正确'答案.那么让我们投票吧!

编辑:我在相关的SO问题(使用断言或例外的合同设计?)中注意到了这个响应:

经验法则是,在尝试捕获自己的错误时应使用断言,在尝试捕获其他人的错误时应使用异常.换句话说,您应该使用异常来检查公共API函数的前提条件,以及何时获得系统外部的任何数据.您应该将断言用于系统内部的函数或数据.

对我而言,这是有道理的,并且可以与下面概述的'Assert then throw'技术结合使用.

欢迎思考!

.net exception assertions

17
推荐指数
3
解决办法
3648
查看次数

免费的WPF应用模板?

是否有免费"WPF应用程序模板"的网站,例如freecsstemplates.com用于HTML网站?

我正在寻找可以在XAML中构建的具有漂亮外观,功能菜单等的东西.

附录

虽然主题很好,但我也在寻找一种布局,就像我在这里使用silverlight底座面板创建的布局一样,但当然,由设计和XAML更有经验的人完成,以便有一个功能,例如有一个侧面板在鼠标悬停时移入和移出,顶部有完整菜单,侧面有手风琴菜单.WPF使这些事情变得如此简单我认为这些类型的免费模板/主题网站现在会涌现出来.

wpf templates

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

为什么在没有配置的情况下需要依赖注入?

在阅读了这个问题的好答案后,我观看了Justin Etheredge的截屏视频.这一切看起来都非常好,只需最少的设置就可以从代码中获得DI.

现在我的问题是:为什么你要使用不使用配置文件的DI框架?这不是使用DI基础设施的重点,以便您可以在构建/发布/无论代码之后改变行为("策略",可以这么说)吗?

任何人都可以给我一个很好的用例,使用像Ninject这样的非配置DI进行验证吗?

configuration dependency-injection inversion-of-control

5
推荐指数
2
解决办法
2094
查看次数

C:结构定义中指向struct的指针

如何在此结构的定义中指向下一个结构的指针:

typedef struct A {
  int a;
  int b;
  A*  next;
} A;
Run Code Online (Sandbox Code Playgroud)

这是我第一次写它但它不起作用的方式.

c struct pointers

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

如何将枚举值序列化为int?

我想将我的枚举值序列化为int,但我只得到名称.

这是我的(示例)类和枚举:

public class Request {
    public RequestType request;
}

public enum RequestType
{
    Booking = 1,
    Confirmation = 2,
    PreBooking = 4,
    PreBookingConfirmation = 5,
    BookingStatus = 6
}
Run Code Online (Sandbox Code Playgroud)

和代码(只是为了确保我做错了)

Request req = new Request();
req.request = RequestType.Confirmation;
XmlSerializer xml = new XmlSerializer(req.GetType());
StringWriter writer = new StringWriter();
xml.Serialize(writer, req);
textBox1.Text = writer.ToString();
Run Code Online (Sandbox Code Playgroud)

这个答案(对另一个问题)似乎表明枚举应该序列化为默认值,但它似乎并没有这样做.这是我的输出:

<?xml version="1.0" encoding="utf-16"?>
<Request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <request>Confirmation</request>
</Request>
Run Code Online (Sandbox Code Playgroud)

我已经能够通过在每个值上放置一个"[XmlEnum("X")]"属性来序列化为值,但这似乎是错误的.

.net enums xml-serialization

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

线程在for循环中休眠

我需要你的帮助才能使用这个方法:

for (int i =0; i<dt.count; i++)
{
    process...
    sleep(3000);
}

int sleeptime=0;
private void timer2_Tick(object sender, EventArgs e)
{
    for (int i = 0; i &#60; mylist.Items.Count;)
    {
        listBox1.Items.Add(mylist.Items[i].Name.ToString() + "starting...");
        sleeptime = int.Parse(mylist.Items[i++].TimeSpan.ToString()) - timer2.Interval;
        System.Threading.Thread.Sleep(sleeptime);
    }
    timer1.Start();
    timer2.Stop();
}
Run Code Online (Sandbox Code Playgroud)

但我没有看到我的数据流如瀑布.

.net c# multithreading winforms

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