小编Cla*_*o P的帖子

SignalR Client如何在开始连接时设置用户?

服务器端:

public override Task OnConnected()
{
    var connectionId = Context.ConnectionId;
    var user = Context.User.Identity.Name; // Context.User is NULL
    return base.OnConnected();
}
Run Code Online (Sandbox Code Playgroud)

客户端(在Console项目中):

IHubProxy _hub;
string url = @"http://localhost:8080/";
var connection = new HubConnection(url);
_hub = connection.CreateHubProxy("TestHub");
connection.Start().Wait();
Run Code Online (Sandbox Code Playgroud)

当客户端连接到服务器时,我想知道userName和connectionId之间的映射,但是Context.User为NULL。如何在客户端设置此值?

javascript c# signalr signalr-hub signalr.client

8
推荐指数
2
解决办法
6159
查看次数

访问修饰符的安全影响(公共,私有,内部,受保护)

C#,Java和其他编程语言中的,属性方法访问修饰符实际上是否会影响应用程序的安全性?他们是否也以某种方式防止未经授权的访问?或者它们只是清晰和适当编程的工具?

c# java security access-modifiers

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

WPF:DatePicker文本垂直居中

我在我的应用程序中使用DatePicker定义如下:

<DatePicker Width="200"
            Margin="20, 20, 20, 0"
            SelectedDate="{Binding PeriodEndDate, Mode=TwoWay}" />
Run Code Online (Sandbox Code Playgroud)

以下是日期选择器的显示方式:

在此输入图像描述

如何使日期(2015年4月22日)在文本框中垂直居中(日期周围的虚线是实际的文本框边界)?

我试图同时设置VerticalContentAlignmentVerticalAlignmentCenter但这并不影响日期定心.

如果我使用探听挖掘到的日期选择器,我可以看到一个名为元素PART_TextBoxDatePicker.如果我将其更改PART_TextBox VerticalContentAlignmentCenter,则文本将居中(Stretch默认设置为).但是,我不知道如何访问此子组件来更改它VerticalContentAlignment

wpf xaml textbox datepicker

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

在设计时确定WPF控件的DataContext

如何DataContextWPF应用程序中的设计时确定特定控件?

DataContext可能是XAML在代码中专门设置,继承或设置的,有时在设计时很难弄清楚绑定所指的类.

我通常尝试找到的DataContext类是在VS中搜索绑定名称.例如,我看到绑定就像

ItemSource = {Binding Items}
Run Code Online (Sandbox Code Playgroud)

...我将搜索文本"Items"以便进入课堂,但VS有时无法找到搜索到的文本(我在解决方案中有几个项目).

c# wpf xaml mvvm

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

在视图模型中使用Caliburn的导体<object>时,窗口标题会被覆盖

Caliburn和WPF MVVM的新手,所以我可能会忽略一些非常简单的东西,我找不到任何搜索网页的东西.

使用Caliburn.Micro设置一个简单的wpf项目.在ShellView.xaml中设置窗口标题.工作良好.主MetroWindow显示标题为已发布.

工作良好:

[Export(typeof (IShell))]
public class ShellViewModel : PropertyChangedBased, IShell
{}
Run Code Online (Sandbox Code Playgroud)

但改为:

[Export(typeof (IShell))]
public class ShellViewModel : Conductor<object>
{}
Run Code Online (Sandbox Code Playgroud)

和Window标题是此ViewModel的完全限定名称.任何帮助,将不胜感激.谢谢.

c# wpf mvvm viewmodel caliburn

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

使用Razor在Html.FormatValue中加粗文本

我希望得到以下结果.用户名必须为粗体:

Blabla 用户名 Bla.

我在ressource文件中有Format:

Blabla {0} Bla.

在视图中,我执行以下操作:

@Html.FormatValue(User.Identity.Name, Resources.MyFormatString)
Run Code Online (Sandbox Code Playgroud)

如何将用户名加粗并使用Html.FormatValue?或者有另一种方法来实现这一目标吗?

c# resource-files razor asp.net-mvc-4

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

以编程方式创建自定义Eventlog视图

我想以编程方式在C#应用程序中创建自定义Eventlog视图。

这是如何在Microsoft Windows的Eventlog应用程序的帮助下创建自定义Eventlog视图的方法:

创建自定义视图

我在类中搜索了System.Diagnostics.EventLog一种方法,该方法的作用与Microsoft在Eventlog应用程序中找到的按钮相同。可悲的是,我找不到满足我需求的任何功能。

有没有人以编程方式在C#中创建自定义Eventlog视图,或者知道一种有效的方法?

c# event-log

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

OxyPlot自动缩放

AutoScale OxyPlot图表。例如,我有这样的事情。

using OxyPlot;
using OxyPlot.Axes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using OxyPlot.Wpf;
using PlotControllerTest.Properties;
using System.Diagnostics;
namespace PlotControllerTest
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
/// 
public class Chart
{
    public PlotController myController { get; set; }
    private OxyPlot.Series.LineSeries LS;
    OxyPlot.Axes.LinearAxis LAY;
    OxyPlot.Axes.LinearAxis LAX;
    private int i = 0;
    public PlotModel PlotModel {get;set;}
    public Chart() …
Run Code Online (Sandbox Code Playgroud)

c# wpf oxyplot

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

如何在 WPF MVVM Catel 应用程序中切换多个视图?

在 MS VS 2015 Professional 中,我使用 Catel 作为 MVVM 框架开发了 C# WPF MVVM 应用程序。我的问题是我不知道如何使用按钮在一个窗口中实现多个视图之间的切换。下面我简单介绍一下我的应用。MainWindow 有三个按钮

<catel:Window x:Class="FlowmeterConfigurator.Views.MainWindow"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          xmlns:catel="http://catel.codeplex.com"
          ResizeMode="CanResize">

     <catel:StackGrid x:Name="LayoutRoot">
        <catel:StackGrid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto"/>
        </catel:StackGrid.RowDefinitions>

        <ToolBar>
            <Button Name="btnConnectDisconnect" Content="Connect/Disconnect"/>
            <Button Name="btnFieldSettings" Content="Field Settings"/>
            <Button Name="btnCalibration" Content="Flowmeter Calibration"/>
        </ToolBar>
    </catel:StackGrid>
</catel:Window>
Run Code Online (Sandbox Code Playgroud)

应用程序 MainWindow 有一个 ViewModel。为简洁起见,我不在这里展示。除了 MainWindow 之外,我的应用程序中还有三个视图:ConnectDisconnectView、CalibrationView 和 FieldSettingsView。为简洁起见,我在此仅显示其中一个 (FieldSettingsView),因为所有其他人都是在 catel:UserControl 的基础上以相同方式创建的。

<catel:UserControl x:Class="FlowmeterConfigurator.Views.FieldSettingsView"
               xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
               xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
               xmlns:catel="http://catel.codeplex.com">

    <catel:StackGrid>
        <catel:StackGrid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </catel:StackGrid.RowDefinitions>
        <catel:StackGrid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </catel:StackGrid.ColumnDefinitions>

        <Label Grid.Row="0" Grid.Column="0" …
Run Code Online (Sandbox Code Playgroud)

c# wpf mvvm catel

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

用于处理多个现有独立数据定义的函数

我有多个数据定义,作为一个简单的例子:

data Fruit = Apple String Bool
            | Cherry String String
            | Grape String

data Vegetable = Carrot String
                | Onion Bool String
                | Tomato String String
Run Code Online (Sandbox Code Playgroud)

现在我想要一个应该继续这两种类型的函数,我试过这样的事情:

f :: a -> String
f (Carrot s) = s
f (Apple s b) = s
f (Onion b s) = s
...
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为预期的类型a不能与例如类型匹配Carrot.我想知道如何定义一个函数,它可以借助模式匹配或其他技术处理多个现有的独立数据定义.

haskell pattern-matching

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

如何从大视图模型中分离命令

我的viewmodel包含很多命令,它使我的viewmodel非常大.我想从viewmodel中分离出我的命令.目前,我的解决方案是为每个命令创建一个类,如下所示,

 public class TestCommand : CommandBase
{
    private MainViewModel vm;

    public TestCommand(MainViewModel vm)
    {
        this.vm = vm;
    }

    public override bool CanExecute(object parameter)
    {
        return true;
    }

    public override void ExecuteCommand(object parameter)
    {
        vm.logger.log(...);
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

由于我需要在ViewModel中使用某些方法或属性,因此我必须将viewmodel作为参数传递给命令.对于这个解决方案,有两个缺点:1.项目中有很多命令文件,如果一个视图中命令的平均计数为15,则10个视图将在项目中有150个命令文件; 2.将ViewModel作为参数传递给命令需要一些属于私有的属性或方法必须更改为public; 将viewmodel传递给命令也很奇怪.

有没有其他解决方案来分离命令?

c# architecture wpf mvvm

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

如何处理处于故障状态的 WCF 服务客户端?

异步使用 WCF 服务。如果我不能连接到服务或发生异常就跑到故障状态,并将其错误写入Error的性能AsyncCompletedEventArgs

我与服务客户端有什么关系?我无法关闭它,因为它会抛出一个CommunicationObjectFaultedException. 记录错误后我还需要做什么?

这是我的代码:

MyServiceClient serviceClient = new MyServiceClient();

//Close the connection with the Service or log an error
serviceClient.JustAMethod += (object sender, AsyncCompletedEventArgs args) =>
{
    if (args.Error != null)
    {
        //Log error
        ErrorHandler.Log(args.Error);
    }
    else
    {
        serviceClient.Close();
    }
};

//Call the service
serviceClient.JustAMethodAsync();
Run Code Online (Sandbox Code Playgroud)

c# wcf asynchronous

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