小编Shi*_*mmy的帖子

WPF'魔术'否定刷?

我有一个渐变来改变它的颜色,我希望它里面的文字应该始终可见.

如果有任何开箱即用的资源,我宁愿动态地做它; 我想要一种否定颜色的"魔术刷".

有实验吗?

wpf brush

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

隐式DataTemplate不起作用

为什么以下隐含DataTemplate不起作用?只有注释的内联才DataTemplate有效.

注意:如果我删除了两个DataTemplates,我会看到ProductListView完整类型名称的字符串表示.

<Window.Resources>
  <DataTemplate DataType="vm:ProductListViewModel">
    <v:ProductListView/>
  </DataTemplate>
</Window.Resources>

<TabControl ItemsSource="{Binding Tabs}" TabStripPlacement="Left">
  <TabControl.ItemTemplate>     
    <DataTemplate>
      <TextBlock Text="{Binding Key}"/>
    </DataTemplate>        
  </TabControl.ItemTemplate>
  <TabControl.ContentTemplate>
    <DataTemplate>
      <ContentPresenter Content="{Binding Value}">

        <!--ContentPresenter.ContentTemplate>
          <DataTemplate DataType="vm:ProductListViewModel">
            <v:ProductListView/>
          </DataTemplate>
        </ContentPresenter.ContentTemplate-->

      </ContentPresenter>
    </DataTemplate>
  </TabControl.ContentTemplate>
</TabControl>
Run Code Online (Sandbox Code Playgroud)

wpf datatemplate

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

.NET中安全标识的本地化

我正在寻找在.NET中实现服务/客户端通信的命名管道,并且遇到了这样的代码,虽然初始化管道的服务器端必须为管道设置安全描述符.他们这样做了:

PipeSecurity pipeSecurity = new PipeSecurity();

// Allow Everyone read and write access to the pipe.
pipeSecurity.SetAccessRule(new PipeAccessRule("Authenticated Users",
    PipeAccessRights.ReadWrite, AccessControlType.Allow));

// Allow the Administrators group full access to the pipe.
pipeSecurity.SetAccessRule(new PipeAccessRule("Administrators",
    PipeAccessRights.FullControl, AccessControlType.Allow));
Run Code Online (Sandbox Code Playgroud)

但我看着它,我很担心,指定的SID为字符串,或Authenticated UsersAdministrators零件.用中文或其他语言来称呼它们的保证是什么?

.net c# windows security sid

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

如何在Entity Framework中回滚事务

string[] usersToAdd = new string[] { "asd", "asdert", "gasdff6" };
using (Entities context = new Entities())
{
    foreach (string user in usersToAdd)
    {
        context.AddToUsers(new User { Name = user });
    }
    try
    {
        context.SaveChanges(); //Exception thrown: user 'gasdff6' already exist.
    }
    catch (Exception e)
    {
        //Roll back all changes including the two previous users.
    }
Run Code Online (Sandbox Code Playgroud)

或者这可能是自动完成的,这意味着如果发生错误,则会针对所有更改取消提交更改.是吗?

c# entity-framework transactions savechanges rollback

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

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

在SQL Server中创建一个全局静态变量?

有没有办法在SQL Server中创建一个全局变量,即使服务器重新启动它仍然存在,所以我可以在函数中使用它?

我需要的例子:

DECLARE @@DefaultValue bit
Run Code Online (Sandbox Code Playgroud)

除非我明确这样做,否则永远不应删除此变量.

sql t-sql sql-server sql-server-2005 global-variables

9
推荐指数
3
解决办法
4万
查看次数

计算位列,返回另一列是否为空

我尝试使用此计算列:

CREATE TABLE dbo.Item
(
    ItemId int NOT NULL IDENTITY (1, 1),
    SpecialItemId int NULL,
    --I tried this
    IsSpecialItem AS ISNULL(SpecialItemId, 0) > 0, 
    --I tried this
    IsSpecialItem AS SpecialItemId IS NOT NULL
    --Both don't work
)  ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

null sql-server-2005 calculated-columns isnull

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

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

实体框架:渴望加载继承实体的导航属性

我试图加载我的整个图表,它看起来像下面这样:

public class WorkoutProgram
{
    public Schedule Schedule { get; set; }
}

public class Schedule
{
    public ICollection<DayBase> Days { get; set; }
}

public abstract class DayBase
{
}

public class TrainingDay : DayBase
{
    public ICollection<Exercise> Exercises { get; set; }
}

context.WorkoutPrograms.Include("Schedule.Days.Exercises");
Run Code Online (Sandbox Code Playgroud)

显然,并非所有Schedule.Days都是TrainingDays,所以由于路径包含,我得到运行时错误Exercises.

我在这里错过了配置,还是我需要求助于延迟加载(我希望不要).

谢谢

.net c# entity-framework

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

WCF客户端错误处理

我正在消耗一个笨重的WCF服务器,偶尔会抛出各种异常,并且还会返回一些错误string.我根本无法访问服务器代码.

我想覆盖内部WCF客户端请求调用方法并处理服务器返回的所有内部异常和硬编码错误,并在Fault发生错误时引发事件,伪:

class MyClient : MyServiceSoapClient
{
    protected override OnInvoke()
    {
        object result;
        try
        {
            result = base.OnInvoke();
            if(result == "Error")
            {
                //raise fault event
            }
        catch
        {
            //raise fault event
        }
    }        
}
Run Code Online (Sandbox Code Playgroud)

因此,当我打电话时myClient.GetHelloWorld(),它通过我的重写方法.

怎么能实现这一目标?
我知道我不必使用生成的客户端,但我不想再次重新实现所有的合同,我想使用生成的ClientBase子类或至少它的通道.
我需要的是控制内部请求调用方法.

更新

我读了这个答案,看起来它部分是我正在寻找的,但我想知道是否有办法只附加一个IErrorHandler消费者(客户端)代码,我想以ClientBase<TChannel>某种方式将它添加到实例.

更新

这篇文章看起来很有希望,但它不起作用.应用的属性似乎没有生效.我找不到添加IServiceBehavior到客户端的方法.

更新

我试图安装一个IErrorHandler通过IEndpointBehavior.ApplyClientBehavior调用:

public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
{
  clientRuntime.CallbackDispatchRuntime.ChannelDispatcher.ErrorHandlers
           .Add(new ErrorHandler());
}
Run Code Online (Sandbox Code Playgroud)

(clientRuntime是一个参数),但仍会直接跳过异常跳转MyErrorHandler …

c# wcf wcf-client

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