小编Dav*_*vy8的帖子

在数据库中保留大字符串的最佳方法是什么?(SQL Compact)

有问题的字符串将是(烹饪)食谱的描述字段,最大长度应该是99%的用户永远不会遇到的事情.nvarchar(4000)似乎可能太限制了.

SQL表中的列是否适合这个位置?在这样的字段中存储这样一个(可能)大的值是不对的,但也许不是吗?

不确定是否重要,但.NET 3.5很可能会使用LINQ2SQL.

编辑:使用VS Express数据库资源管理器创建表,它告诉我4000是nvarchar的最大大小(似乎没有列出varchar作为选项).这只是SQLCE的限制,并且表明我将不得不研究其他内容吗?

如果确实这是SQLCE的限制,是否有人有另一个推荐?对于宠物项目,我必须是免费的,最好是易于设置(最好是我和最终用户,但更重要的是,它很容易为最终用户设置).数据库将是本地的,性能不是太大的问题.

sql-server-ce

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

使用"A"类接口前缀抽象类的前缀是"I"?

在我看来,能够一眼就知道一个类是抽象的并且不打算直接实例化就像它能够轻松识别接口一样有用.

我的问题是,为什么没有"AFourLeggedAnimal:IAnimal"流行?是否仅仅因为可能的混淆(我在编写时就注意到了这一点)例如将其混淆为"四足动物"而不是"抽象类FourLeggedAnimal"?还是更多的东西?

从学校的Java到C#工作,我发现"I"前缀命名约定在浏览类列表时非常有用,在我看来,能够区分混凝土和非混凝土是很方便的.课程一目了然,无需查看代码.

.net naming-conventions

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

这段代码如何抛出NullReferenceException?

我必须忘记,因为我的单元测试失败,因为以下代码抛出了null ref异常:

int pid = 0;
if (parentCategory != null)
{
    Console.WriteLine(parentCategory.Id);
    pid = parentCategory.Id;
}
Run Code Online (Sandbox Code Playgroud)

投掷它的线是:

pid = parentCategory.Id;
Run Code Online (Sandbox Code Playgroud)

console.writeline只是在NUnit GUI中调试,但输出有效的int.

编辑:它是单线程的,因此无法从其他某个线程分配为null,而Console.WriteLine成功打印出该值的事实表明它不应该抛出.

编辑: Category类的相关片段:

public class Category
{
    private readonly int id;

    public Category(Category parent, int id)
    {
        Parent = parent;
        parent.PerformIfNotNull(() => parent.subcategories.AddIfNew(this));
        Name = string.Empty;
        this.id = id;
    }
    public int Id
    {
        get { return id; }
    }
}
Run Code Online (Sandbox Code Playgroud)

好吧,如果有人想查看完整的代码,请访问http://code.google.com/p/chefbook/source/checkout上的Google Code

我想我会尝试重新启动计算机...我已经看到通过重启修复了很奇怪的事情.重启后会更新.

更新:神秘解决了.看起来NUnit将错误行显示为最后成功执行的语句...将复制/粘贴测试复制到新控制台应用程序并在VS中运行显示它是包含空引用的if语句块(未显示)之后的行.感谢大家的所有想法.给每个回答的人+1.

c# nunit

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

从命令行传递的WiX条件属性不起作用?

我有一个属性,用于是否安装需要通过命令行参数传递的快捷方式.当我在wxs文件中设置属性时,条件似乎有效,但在通过命令行设置它们时似乎会忽略它们.从日志中我看到它们正在被设置:

MSI (s) (24:C8) [11:01:32:234]: PROPERTY CHANGE: Modifying INSTALLSTARTUPSHORTCUT property. Its current value is '0'. Its new value: '1'.
MSI (s) (24:C8) [11:01:32:234]: PROPERTY CHANGE: Modifying INSTALLSTARTMENUSHORTCUT property. Its current value is '0'. Its new value: '1'.
MSI (s) (24:C8) [11:01:32:234]: PROPERTY CHANGE: Modifying INSTALLDESKTOPSHORTCUT property. Its current value is '0'. Its new value: '1'.
Run Code Online (Sandbox Code Playgroud)

但是,他们没有安装快捷方式.

而且,似乎因为他们需要在他们自己的组件中才能为他们设置条件,所以他们不能再做广告的快捷方式.您将如何获得有条件安装的广告快捷方式?

当前快捷键代码:

<Property Id="INSTALLSTARTMENUSHORTCUT" Value="0"/>
...
<Component Id="StartMenuShortcut" Guid="MY-GUID">
  <Condition>INSTALLSTARTMENUSHORTCUT</Condition>
  <Shortcut Id="StartMenuServerShortcut"
    Directory="ProgramMenuDir"
    Name="Application Name" WorkingDirectory="INSTALLDIR" Advertise="no"
    Target="[!FileEXE]"
    Icon="Icon.ico" />
</Component>
Run Code Online (Sandbox Code Playgroud)

并重复其他快捷方式

编辑:

尝试Sacha建议并添加以下内容: …

shortcuts installer conditional wix wix3

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

从C#中的代码访问prebuild宏(如$(SolutionDir)和$(DevEnvDir)的简单方法是什么?

现在我正在考虑在预构建事件中写入文件的路径,然后在代码中从该文件中读取,但我想知道是否有更简单更优雅的方式.

编辑:这是一个跟进帮助一步建立所有项目+安装程序(.NET + WiX),因为我没有真正得到答案,看看我是否可以得到一个更简单的问题的答案.

c# prebuild visual-studio

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

你如何创建一个非模态最顶层的对话框,它只是WinForms中父表单的最顶层?

关于这个关于对话框的思考,但我确信它适用于其他地方(比如一个查找框)

很抱歉,如果这是一个骗局,但我找不到这个或如何清楚地表达它的最后一部分只是在父母之上.如何制作始终位于父表单之上的表单,但它是非模态的,但不会掩盖其他应用程序?

c# dialog topmost non-modal winforms

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

有没有更简洁的方法来链接Python中的空列表检查?

我有一个相当复杂的对象(反序列化的json,所以我没有太多的控制权)我需要检查是否存在并迭代一个相当深的元素,所以现在我有这样的东西:

if a.get("key") and a["key"][0] and a["key"][0][0] :
    for b in a["key"][0][0] :
        #Do something
Run Code Online (Sandbox Code Playgroud)

哪个有效,但很难看.似乎必须有更好的方法来做到这一点,那么什么是更优雅的解决方案?

python coding-style

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

正则表达式匹配除某些集合之外的所有集合

我确定以前曾经问过,但我似乎无法找到它(或者知道要搜索的正确措辞)

基本上我想要一个匹配除连字符以外的所有非字母数字的正则表达式.所以基本上匹配\ W +除了排除' - '我不知道如何从预制组中排除特定的.

regex

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

(WPF)如何在用户控件上绑定到IsMouseOver

编辑:问题的原始前提是不正确的,因此修改了问题:

基本上我只想在鼠标悬停在包含的用户控件上时才能看到一个按钮.这是我所拥有的简化版本:

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="MyNamespace.MyUserControl"
    x:Name="myUserControl">
    <Textbox>Some Text</Textbox>
    <Button Visibility="{Binding ElementName=myUserControl, Path=IsMouseOver, Converter={StaticResource mouseOverVisibilityConverter}}" />
</UserControl>
Run Code Online (Sandbox Code Playgroud)

如果鼠标在文本框上方,但在用户控件中没有其他任何位置,则该方法有效.

data-binding wpf user-controls mouseover

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

你能用POST(非javascript)制作跨子域吗?

我找到了很多关于AJAX调用的答案,但是我很难在不使用Javascript的情况下找到一个直接的HTML表单的答案.

您可以从发布的形式foo.mydomain.com/somepagebar.mydomain.com/someotherpage

html forms http-post

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