小编Ath*_*ari的帖子

根据元数据包,netstandard库的应用含义是什么?

假设我有一个类库,我想以netstandard1.3为目标,但也使用BigInteger.这是一个简单的例子 - 唯一的源文件是Adder.cs:

using System;
using System.Numerics;

namespace Calculator
{
    public class Adder
    {
        public static BigInteger Add(int x, int y)
            => new BigInteger(x) + new BigInteger(y);            
    }
}
Run Code Online (Sandbox Code Playgroud)

回到这个世界project.json,我将netstandard1.3在该frameworks部分中进行定位,并且明确依赖于System.Runtime.Numerics版本4.0.1.我创建的nuget包将列出该依赖项.

在基于csproj的dotnet工具的勇敢新世界中(我使用的是命令行工具的v1.0.1),有一个隐含的元数据包引用,用于NETStandard.Library 1.6.1何时进行定位netstandard1.3.这意味着我的项目文件非常小,因为它不需要显式依赖项:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard1.3</TargetFramework>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

...但是生成的nuget包依赖于NETStandard.Library,这表明为了使用我的小型库,你需要那里的一切.

事实证明我可以使用禁用该功能DisableImplicitFrameworkReferences,然后再次手动添加依赖项:

<Project Sdk="Microsoft.NET.Sdk">    
  <PropertyGroup>
    <TargetFramework>netstandard1.3</TargetFramework>
    <DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="System.Runtime.Numerics" Version="4.0.1" />
  </ItemGroup>    
</Project>
Run Code Online (Sandbox Code Playgroud)

现在,我的NuGet软件包确切地说明了它所依赖的内容.直观地说,这感觉就像一个"更精简"的包装.

那么我图书馆消费者的确切区别是什么?如果有人试图在UWP应用程序中使用它,第二个"修剪"形式的依赖关系是否意味着生成的应用程序会更小?

通过不清楚地记录 …

nuget .net-core .net-standard

97
推荐指数
3
解决办法
6440
查看次数

在Visual Studio 2012中调试.NET Framework源代码?

我正在使用Visual Studio 2012.我想调试.NET Framework源代码.我已经尝试了几乎所有的选择,但我仍然得到There is source code available for Current Location.符号已成功加载.我已经尝试加载Microsoft Symbol Server并尝试了这个URL http://referencesource.microsoft.com/symbols.但我仍然无法进行调查.我试过这些链接,http://blogs.msdn.com/b/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspxhttp: //msdn.microsoft.com/en-us/library/cc667410.aspx

此外,http://blogs.msdn.com/b/dotnet/archive/2012/08/15/announcing-the-release-of-net-framework-4-5-rtm-product-and-source- code.aspx

是否有人能够在VS 2012中使用DEBUG .NET Framework源代码?

.net c# asp.net visual-studio visual-studio-2012

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

在虚拟化WPF TreeView中滚动非常不稳定

如果启用了TreeView具有各种大小的项目的虚拟化,则会出现多个问题:

  • 垂直滚动条随机更改其大小,并且在查看整个树后不记得元素的大小.用鼠标滚动很难.

  • 在上下滚动之后,ArgumentNullException会从框架代码中抛出.

重现很简单:创建一个新的WPF应用程序,然后将此代码放入MainWindow.xaml中

<Window x:Class="VirtualTreeView.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="800" Width="400" Left="0" Top="0"
        DataContext="{Binding RelativeSource={RelativeSource Self}}">
    <Grid>
        <TreeView x:Name="tvwItems" ItemsSource="{Binding Items}"
                VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.VirtualizationMode="Recycling">
            <TreeView.ItemTemplate>
                <DataTemplate>
                    <Border Height="{Binding Height}" Width="{Binding Height}"
                            BorderThickness="1" Background="DarkGray" BorderBrush="DarkBlue"/>
                </DataTemplate>
            </TreeView.ItemTemplate>
        </TreeView>
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

并将此代码放入MainWindow.xaml.cs

using System.Collections.ObjectModel;
using System.Linq;

namespace VirtualTreeView
{
    public partial class MainWindow
    {
        public ObservableCollection<Item> Items { get; set; }

        public MainWindow ()
        {
            Items = new ObservableCollection<Item>(Enumerable.Range(0, 20).Select(i => new Item {
                Height = i*20, …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf treeview virtualizingstackpanel

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

这是AutoMapper 2.0.0和2.2.0之间的重大变化吗?

我今天从AutoMapper 2.0.0更新到2.2.0,并意识到更新破坏了一些代码.想要在automapper github网站上发布问题之前在这里问一下这个问题.

我的一个目标类型初始化一个集合属性,如下所示:

public class PageOf<TModel>
{
    public PageOf()
    {
        Items = Enumerable.Empty<TModel>();
    }

    public IEnumerable<TModel> Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

使用automapper 2.0.0,这很好.当我更新到2.2.0时,映射到此目标类型会导致NotSupportedException,并显示消息"Collection is a fixed size".(该异常包含在AutoMapperMappingException中.)

我能够通过将上面的构造函数代码更改为此来解决此问题:

public PageOf()
{
    Items = new List<TModel>();
}
Run Code Online (Sandbox Code Playgroud)

似乎AutoMapper 2.0.0正在丢弃Items属性中的任何值并使用setProperty访问器,而AutoMapper 2.2.0只是使用get属性访问器并尝试修改现有的IEnumerable.它看起来Enumerable.Empty<TModel>()只是替换一个零长度数组,这将解释异常.

这是一个错误吗?AutoMapper在2.0.0和2.2.0之间的变化会导致它忽略目标属性设置器,而是尝试修改现有的集合?

更新:

根据要求,这是CreateMap调用:

public class PagedQueryResultToPageOfItemsProfiler : Profile
{
    protected override void Configure()
    {
        CreateMap<PagedQueryResult<EstablishmentView>, PageOfEstablishmentApiModel>();
    }
}
Run Code Online (Sandbox Code Playgroud)

PageOfEstablishmentApiModel类从继承PageOf<EstablishmentApiModel>.

这是Mapper.Map代码:

var query = Mapper.Map<EstablishmentViewsByKeyword>(input);
var results = _queryProcessor.Execute(query);
var …
Run Code Online (Sandbox Code Playgroud)

c# collections ienumerable automapper automapper-2

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

如何不输出默认的T4生成文件?

我使用T4toolbox生成一堆文件,假设我的t4文件名是x.t4,但是默认它会生成一个x.txt,里面什么都没有,我可以告诉t4引擎不要这样做吗?

t4

29
推荐指数
3
解决办法
5823
查看次数

是否有一个很好的工具可以在运行时调试XAML的数据绑定行为/错误?

WPF是一个很棒的工具集,XAML数据绑定功能非常强大,但我经常因其透明性而遇到困难:在没有抛出错误时调试数据绑定失败很困难.

例如,我最近不得不改变这样的Style声明:

<DataGrid.RowStyle>
    <Style>
        <Style.Triggers>
            <DataTrigger Binding="{Binding TestProperty}" Value="False">
                <Setter Property="DataGridRow.Background" Value="Red"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</DataGrid.RowStyle>
Run Code Online (Sandbox Code Playgroud)

进入:

<DataGrid.RowStyle>
    <Style>
        <Style.Triggers>
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.TestProperty}" Value="False">
                <Setter Property="DataGridRow.Background" Value="Red"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</DataGrid.RowStyle>
Run Code Online (Sandbox Code Playgroud)

为了使DataGridRow属性受到影响.在设计或运行时,看到绑定到不同源和RelativeSources 的含义是非常有帮助的.

是否存在任何此类工具/技术?

.net wpf xaml

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

IronPython中的多线程

我在IronPython中有一个"脚本类",我的应用程序中的脚本通过调用其实例上的方法来工作.我需要从多个线程实现调用脚本.这样做的正确方法是什么?

我有多个问题:

  1. ScriptScope线程安全的?信息是矛盾的.ScriptScope的文档说:"ScriptScope不是线程安全的.当多个线程可以访问同一个模块或者应该为每个线程复制时,主机应该锁定." 然而,IronRuby的使用相同的DLR和@JimmySchementi说"ScriptRuntime,ScriptEngine的,和ScriptScope都是线程安全的,设计线程之间使用.具体来说,ScriptScope使用一个线程安全的数据存储,所以ScriptScope可以在线程之间共享".

  2. 如果我创建多个ScriptScopes,那将意味着多次执行相同的初始化脚本.假设我运行了10个Python脚本文件,导入了5个程序集,并且总体上执行了相当多的代码以使"脚本对象"准备就绪.有没有办法避免为每个线程运行大量相同代码的时间和内存成本?

  3. ScriptScope变量线程静态(即应用ThreadStaticAttribute)和执行初始化为每个线程使用Task.Run的方式去?或者我应该使用TaskScheduler带有并发限制,因为多个范围的成本很高?

总的来说:如何正确实现在多个线程中的不同参数上运行相同的脚本?脚本必须同时执行,并且不得因竞争条件而崩溃.

.net multithreading ironpython thread-safety

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

WPF RibbonWindow + Ribbon =屏幕外标题?

我正在尝试Ribbon控制与结合RibbonWindow,但即使在琐碎的实验中他们也失败了.

  1. 创建了新的WPF应用程序
  2. 将代码更改为MSDN中的示例
  3. 添加System.Windows.Controls.Ribbon了对ribbon:前缀的引用并删除了前缀(为什么示例过时了?).
  4. 添加了两个图标(16x16和32x32).
  5. 执行应用程序并看到此(记事本供参考):

我已经看到很多问题:

  1. 边界很小.普通窗口有一个很大的边框,WPF Ribbon应用程序很小.标题高度也较小.
  2. 边界模糊.当聚焦普通窗口时,它的边框是黑色的.WPF应用程序的边框是灰色的(黑色可以在角落中看到;有些东西是在边界上绘制的?).
  3. 应用程序图标放错了位置.它粘在左上角.
  4. 申请标题放错了地方.它粘在上面.

让我们将工具栏移动到底部.现在我们看到了这个:

按钮位于工具栏之外.

最后,让我们最大化窗口:

报头的一半消失在屏幕外部的(技术上窗口在屏幕的外部通过在每边8个像素,但其他应用不受此混淆).

我使用的是Windows 7,Aero,单显示器,没什么特别的.我害怕在Windows 8上测试应用程序...

有机会解决这个问题吗?

.net c# windows wpf ribbon

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

在MEF合成期间处理ReflectionTypeLoadException

DirectoryCatalog在MEF中使用一个来满足我的应用程序中的导入.但是,目录中有时会出现模糊的程序集,导致ReflectionTypeLoadException我尝试编写目录时.

我知道我可以通过使用单独的目录或使用搜索过滤器DirectoryCatalog来解决它,但我想要一种更通用的方法来解决问题.有什么方法可以处理异常并允许组合继续吗?还是有另一个更通用的解决方案吗?

c# mef

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

在PowerShell中调用泛型静态方法

如何在Powershell中调用自定义类的通用静态方法?

鉴于以下课程:

public class Sample
{
    public static string MyMethod<T>( string anArgument )
    {
        return string.Format( "Generic type is {0} with argument {1}", typeof(T), anArgument );
    }
}
Run Code Online (Sandbox Code Playgroud)

这被编译成一个程序集'Classes.dll'并加载到PowerShell中,如下所示:

Add-Type -Path "Classes.dll"
Run Code Online (Sandbox Code Playgroud)

调用MyMethod方法最简单的方法是什么?

c# generics powershell powershell-2.0

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