小编Mac*_*ius的帖子

C#反射属性顺序

我使用/sf/answers/37197191/中的代码从基础成功检索对象实例的所有属性,问题是派生类型的属性首先被迭代.由于协议的性质,我首先需要基本属性.

x |
y | B
z |
w | A
Run Code Online (Sandbox Code Playgroud)

B和A是类,B来自A. x,y,z是来自B的属性,w是来自A的属性

这是A.GetProperties(); 正在回归 我需要这个:

w | A
x |
y | B
z |
Run Code Online (Sandbox Code Playgroud)

有没有办法按顺序获得字段?

c# reflection

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

为什么ChartJS图表最终以宽度0和高度0结尾?

我有以下angularJS指令

app.directive('answersPlot', function() {
  return {
    scope: {
      chartData: "=chartData",
      chartType: "=chartType"
    },
    template: '<canvas width="100px" height="100px" style="width:100px; !important height:100px; !important"></canvas>',
    link: function(scope, element, attrs) {
      var canvas = element[0].childNodes[0];
      var context = canvas.getContext('2d');
      var chart = new Chart(context);

      if (scope.chartType == 0) {
        chart.Bar(scope.chartData, {});
      } else {
        chart.Pie(scope.chartData, {});
      }
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

我正在像这样的ng-repeat DOM块中实例化它

<div ng-repeat="question in talk.questions track by $index">
  <answers-plot chart-data="question.chartData" chart-type="question.chartType"></answers-plot>
</div>
Run Code Online (Sandbox Code Playgroud)

但是,当我检查DOM时,我发现了这一点

<answers-plot chart-data="question.chartData" 
chart-type="question.chartType" 
class="ng-isolate-scope">
  <canvas width="0" height="0" style="width: 0px; height: 0px;"></canvas> …
Run Code Online (Sandbox Code Playgroud)

angularjs chart.js

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

如何忽略 NuGet NU1605?

我有一个包含许多项目和内部 NuGet 包的巨大解决方案,它们普遍依赖于 Unity 4.0.1。我们正在评估将此解决方案迁移到 Unity 5.11.1 以提高性能并解决由 Unity 项目在 5.0.0 版本中彻底删除的代码引起的随机 DI 相关崩溃。

在寻找一种简化从外到内迁移的方法时,已经开发了两种工具:

  • 基于 Roslyn 的源代码转换器
  • 实现 Unity 5 接口但实际上将调用透明地映射到包装的 Unity 4 容器接口的桥接器

这两种工具都很好地通过了他们的单元测试,并且转换器设法转换了一个关键的“叶”项目,但是,当我们尝试从一个内部项目引用迁移的叶项目时遇到了障碍:臭名昭著的NU1605

我绝对可以看到 NU106 错误是如何保证的,因为内部项目仍然引用 Unity 4.0.1,而叶项目引用 Unity 5.11.1。然而,这是工具妨碍我们的一种情况:我需要两个版本“共存”,因为我正在手动弥合它们的不一致。

从理论上讲,这应该是可行的,因为 DLL 具有不同的版本,甚至命名空间也不同。

有什么办法可以“强制”nuget 接受这个奇怪的设置?

c# unity-container nuget

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

WPF标签到文本框

我是WPF中的漂亮菜鸟,但我正在认真地试图掌握它:p

我一直在尝试创建一个控件,其中显示一个标签/文本块,但是一旦用户悬停/点击控件,就会显示一个文本框,以便可以编辑该值.

我一直在尝试将Visible属性绑定到代码隐藏中的布尔值,使用MouseOver和MouseLeave以及Got/LostFocus的委托进行更新,但它没有用.此外,我尝试使用一个简单的样式,它也将Visible属性绑定到代码隐藏中的布尔值...也没有工作.最后,我按照WPF:Label选择了TextBox,使用ControlTemplate和Trigger,如下所示:

    <Style x:Key="TransformerBox" TargetType="{x:Type TextBox}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter Property="Visibility" Value="Visible"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
Run Code Online (Sandbox Code Playgroud)

和:

    <Canvas x:Name="CnvCantidad" Grid.Row="2" Grid.Column="1">
        <TextBox HorizontalAlignment="Center" VerticalAlignment="Center" Canvas.Left="16" Canvas.Top="8" Width="16" 
                 x:Name="TxtCantidad" Style="{StaticResource TransformerBox}" Height="23" Visibility="Visible"/>
        <Label HorizontalAlignment="Center" VerticalAlignment="Center" Content="0" Canvas.Left="16" Canvas.Top="6" 
               x:Name="LblCantidad"/>
    </Canvas>
Run Code Online (Sandbox Code Playgroud)

但在之前解释过的所有案例中,无论如何,TextBox都不可见:/

我应该如何创建ControlTemplate,以便在用户悬停Label/TextBlock时TextBox可见?

c# wpf

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

为什么YEAR因日期转换错误而失败?

我得到了一个名为'FechasFirmaHorometros'的视图定义为

SELECT IdFormulario, 
       CONVERT(Date, RValues) AS FechaFirma 
FROM   dbo.Respuestas 
WHERE  ( IdPreguntas IN (SELECT IdPregunta 
                         FROM   dbo.Preguntas 
                         WHERE 
         ( FormIdentifier = dbo.IdFormularioHorometros() ) 
         AND ( Label = 'SLFYHDLR' )) ) 
Run Code Online (Sandbox Code Playgroud)

我有一个名为[RespuestaPreguntaHorometrosFecha]的函数定义为

SELECT Respuestas.RValues 
FROM   Respuestas 
       JOIN Preguntas 
         ON Preguntas.Label = @LabelPregunta 
       JOIN FechasFirmaHorometros 
         ON FechasFirmaHorometros.IdFormulario = Respuestas.IdFormulario 
WHERE  Respuestas.IdPreguntas = Preguntas.IdPregunta 
       AND YEAR(FechasFirmaHorometros.FechaFirma) = @Anio 
       AND MONTH(FechasFirmaHorometros.FechaFirma) = @Mes

@LabelPregunta VARCHAR(MAX)
@Anio INT
@Mes INT
Run Code Online (Sandbox Code Playgroud)

在调试使用它的另一个存储过程时,我会在遇到上述函数时收到此消息

Conversion failed when converting date and/or time from character string.
Run Code Online (Sandbox Code Playgroud)

然而,我可以自由地做类似的事情

SELECT DAY(FechaFirma) FROM …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2012

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

为什么float的精度与double的精度相同?

在这两种情况下,运行此代码会产生相同的精度数

double test = 0.5d;
while (1d != 1d + test) {
    Console.WriteLine(test);
    test /= 2d;
}
Run Code Online (Sandbox Code Playgroud)

最后输出线:2,22044604925031E -16

float test2 = 0.5f;
while (1f != 1f + test2) {
    Console.WriteLine(test2);
    test2 /= 2f;
}
Run Code Online (Sandbox Code Playgroud)

最后输出线:2,220446E -16

根据官方的MSDN文档(浮点数精度数),浮点测试的输出应该类似于2,220446E- 7.我是否存在概念上的误解或编程错误?

c# floating-point

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