假设我有一个类库,我想以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应用程序中使用它,第二个"修剪"形式的依赖关系是否意味着生成的应用程序会更小?
通过不清楚地记录 …
我正在使用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.aspx和http: //msdn.microsoft.com/en-us/library/cc667410.aspx
是否有人能够在VS 2012中使用DEBUG .NET Framework源代码?
如果启用了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) 我今天从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) 我使用T4toolbox生成一堆文件,假设我的t4文件名是x.t4,但是默认它会生成一个x.txt,里面什么都没有,我可以告诉t4引擎不要这样做吗?
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 的含义是非常有帮助的.
是否存在任何此类工具/技术?
我在IronPython中有一个"脚本类",我的应用程序中的脚本通过调用其实例上的方法来工作.我需要从多个线程实现调用脚本.这样做的正确方法是什么?
我有多个问题:
是ScriptScope线程安全的?信息是矛盾的.ScriptScope的文档说:"ScriptScope不是线程安全的.当多个线程可以访问同一个模块或者应该为每个线程复制时,主机应该锁定." 然而,IronRuby的使用相同的DLR和@JimmySchementi说是"ScriptRuntime,ScriptEngine的,和ScriptScope都是线程安全的,设计线程之间使用.具体来说,ScriptScope使用一个线程安全的数据存储,所以ScriptScope可以在线程之间共享".
如果我创建多个ScriptScopes,那将意味着多次执行相同的初始化脚本.假设我运行了10个Python脚本文件,导入了5个程序集,并且总体上执行了相当多的代码以使"脚本对象"准备就绪.有没有办法避免为每个线程运行大量相同代码的时间和内存成本?
是ScriptScope变量线程静态(即应用ThreadStaticAttribute)和执行初始化为每个线程使用Task.Run的方式去?或者我应该使用TaskScheduler带有并发限制,因为多个范围的成本很高?
总的来说:如何正确实现在多个线程中的不同参数上运行相同的脚本?脚本必须同时执行,并且不得因竞争条件而崩溃.
我正在尝试Ribbon控制与结合RibbonWindow,但即使在琐碎的实验中他们也失败了.
System.Windows.Controls.Ribbon了对ribbon:前缀的引用并删除了前缀(为什么示例过时了?).
我已经看到很多问题:
让我们将工具栏移动到底部.现在我们看到了这个:

按钮位于工具栏之外.
最后,让我们最大化窗口:

报头的一半消失在屏幕外部的(技术上窗口是在屏幕的外部通过在每边8个像素,但其他应用不受此混淆).
我使用的是Windows 7,Aero,单显示器,没什么特别的.我害怕在Windows 8上测试应用程序...
有机会解决这个问题吗?
我DirectoryCatalog在MEF中使用一个来满足我的应用程序中的导入.但是,目录中有时会出现模糊的程序集,导致ReflectionTypeLoadException我尝试编写目录时.
我知道我可以通过使用单独的目录或使用搜索过滤器DirectoryCatalog来解决它,但我想要一种更通用的方法来解决问题.有什么方法可以处理异常并允许组合继续吗?还是有另一个更通用的解决方案吗?
如何在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# ×6
.net ×5
wpf ×3
.net-core ×1
asp.net ×1
automapper ×1
automapper-2 ×1
collections ×1
generics ×1
ienumerable ×1
ironpython ×1
mef ×1
nuget ×1
powershell ×1
ribbon ×1
t4 ×1
treeview ×1
windows ×1
xaml ×1