小编nuc*_*eet的帖子

仅在调试模式下将 PostDeployment sql 脚本包含在发布中

我有 .dacpac 项目Script.PostDeployment.sql

:r .\SiteType.sql
:r .\Enums.sql
:r .\DebugData.sql
Run Code Online (Sandbox Code Playgroud)

我想DebugData.sql有条件地包含,仅当我DEBUG在 Visual Studio 中选择配置文件进行发布时才包含,因此在发布生产时我不会包含此数据。

有什么办法可以实现吗?

sql-server publish visual-studio dacpac

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

静态构造函数和继承

我通过C#阅读了Jeffrey Richter - CLR,并决定制作一些测试应用程序.我需要一些帮助来了解究竟发生了什么以及为什么.是的,我知道,公共财产是个坏主意,但我的问题不是代码风格.所以:

class ClassA
{
    public static int val1;

    static ClassA
    {
        val1 = 10;
    }
}

class ClassB : ClassA
{
    public static int val2;

    static ClassB
    {
        val1 = 15;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我们按顺序调用输出到控制台:

Console.WriteLine(ClassB.val1);
Console.WriteLine(ClassB.val2);
Console.WriteLine(ClassB.val1);
Run Code Online (Sandbox Code Playgroud)

输出是:

10
0
15
Run Code Online (Sandbox Code Playgroud)

所以,据我所知,编译器会static ctor在第一次使用该类型的静态成员时进行调用.在使用之前.那么,为什么它叫static ctorClassB在第一行不?这都是因为静态成员没有继承,所以它只是在第一行调用基类型?解释一下.谢谢.

.net c# inheritance static constructor

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

结合ManualResetEvent和token.WaitHandle.WaitOne

我有:

internal void Start(CancellationToken token)
{
   while (!token.IsCancellationRequested)
   {
       //do work
       token.WaitHandle.WaitOne(TimeSpan.FromSeconds(67));
   }       
}
Run Code Online (Sandbox Code Playgroud)

所以我在new中启动这个方法Task并在循环中做一些工作,直到我需要取消它token 有时我需要强制新的循环迭代,而不是等待这67秒.我想我需要这样的东西:

public ManualResetEvent ForceLoopIteration { get; set; }
Run Code Online (Sandbox Code Playgroud)

同时我无法理解如何使用令牌.也许是这样的WaitHandle.WaitAny()

.net c# multithreading task

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

wcf服务运营结果的良好实践

如果我们需要发送失败/成功结果,Wcf服务的最佳实践是什么?

例如:我们有Wcf服务,我们有一些服务BussinesLogic.我们的服务有一个运营合同:

[OperationContract] /*SomeResult*/ SendImages(Bitmap[] images);

可能的情况:

  1. 操作完成,全部成功.
  2. 位图参数不正确(错误的大小或位图数).
  3. BussinesLogic处于"糟糕"状态.逻辑处于错误状态,我们不知道什么时候可以再次工作.

我该定制fault吗?在哪?我应该使用通用fault吗?我应该做enum OperationResult?或者maby,如果成功,任何结果都像是矫枉过正?可能的情景数量将保持不变.

.net c# wcf

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

readmap的位图线程是否安全?

我得到CollectionBitmap对象.需要创建多个Tasks,将其Collection作为参数传递.在任务方法中,我将读取每个的高度/宽度Bitmap,然后将此Collection和高度/宽度数组发送到Wcf服务.

那么线程安全操作吗?在这种情况下我该怎么做?

.net c# multithreading task thread-safety

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

获得更高的使用位位置

我有一些int32值.我需要获得更高位的位置,用于表示当前值.

例如:

int value = 155;
Run Code Online (Sandbox Code Playgroud)

在二进制形式中,它将是10011011 如此高位使用位置8.

是否有任何默认或常用方法?

.net c# bitwise-operators

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

根据ViewModel类型为ItemsControl选择DataTemplate

我尝试ItemsControl使用不同的模板制作我的显示项目,具体取决于其viewModel类型.初看起来我认为它可以像我们通常那样做ContentControl:

 <ItemsControl ItemsSource="{Binding MyViewModelCollection}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate DataType="{x:Type myNameSpace:myViewModel1}">
                     <myNameSpace:myControl2/>
                </DataTemplate>
                <DataTemplate DataType="{x:Type myNameSpace:myViewModel2}">
                     <myNameSpace:myControl2/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
Run Code Online (Sandbox Code Playgroud)

但不幸的是,你不能有两个DataTemplateItemsControl.ItemTemplate.我发现了一个小技巧.

c# wpf xaml mvvm

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

在VS2015中更改断点标记背景的颜色

我知道我可以改变颜色Tools -> Options -> Environment -> Fonts and Colors -> ....但是我找不到改变那条线颜色的选项.它是出现断点红色标记的地方.我想让它像我的计划的其他部分一样变灰.

在此输入图像描述

ide color-scheme visual-studio-2015

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

带条件的 SQL Server 索引

我有Range带列的表

Start (date), RangeTypeId (integer), ChannelId (integer), IsActive (bit)
Run Code Online (Sandbox Code Playgroud)

我有这个索引:

CREATE UNIQUE NONCLUSTERED INDEX [IX_Range_Unique] 
ON [dbo].[Range] ([Start] ASC, [RangeTypeId] ASC, [ChannelId] ASC, [IsActive] ASC)
Run Code Online (Sandbox Code Playgroud)

我希望我的索引仅在 2 行带有IsActive = 1. 所以,我想指数或某种触发,将允许有多个的RangesIsActive = 0和相同的开始日期,频道标识和类型,但只有一个IsActive = 1和相同的开始日期,频道标识和类型。

有效的数据库表状态示例:

Start | RangeTypeId | ChannelId | IsActive
------------------------------------------
23:00        5           1          0  
23:00        5           1          0  
23:00        5           1          0  
23:00        5           1          1  
Run Code Online (Sandbox Code Playgroud)

无效的:

Start | RangeTypeId | ChannelId | IsActive
------------------------------------------
23:00 …
Run Code Online (Sandbox Code Playgroud)

sql-server indexing database-trigger

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