小编And*_*son的帖子

在Visual Studio中"添加现有项目":是否可以使"添加为链接"默认?

正如 SO答案所指出的,默认情况下,Visual Studio中的" 添加">"现有项目"对话框显示" 添加"按钮(意味着所选项目将物理复制到新位置),而理想的操作通常(始终是?)到添加为链接.

是否可以配置Visual Studio,以便在打开" 添加">"现有"项目对话框时默认选择" 添加为链接"

我已经彻底搜索了Visual Studio中的" 选项"对话框,并检查了MSDN文档以获得答案,但到目前为止无济于事.

当两个项目共享相同的代码库时,Project Linker将是自动链接的一个很好的选择.然而,从现有到新的项目连接大量文件时,一个似乎被限制在添加>现有项目的做法,这项工作可能会更加方便,不易出错,如果添加的链接将是默认动作.

c# projects-and-solutions visual-studio

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

在.NET应用程序中使用PCL时,如果被调用的类包含[OnDeserialized]方法,则为TypeLoadException

我正在将现有的.NET类库改编为可移植类库.我使用配置文件78(.NET 4.5,Windows Store 8,Windows Phone 8)支持配置文件158(也针对Silverlight 5),因为我希望能够编译unsafe原始库的代码.

.NET库包含很多标记的类[Serializable],所以我实现了一个包含虚拟SerializableAttribute实现的支持PCL库:

public class SerializableAttribute : Attribute { }
Run Code Online (Sandbox Code Playgroud)

它是从主PCL库中引用的.

为了充分利用.NET应用程序中的主PCL库,同时避免类型名称冲突,我还准备了一个.NET支持库(具有与PCL支持库相同的名称),包含类型转发声明:

[assembly: TypeForwardedTo(SerializableAttribute)]
Run Code Online (Sandbox Code Playgroud)

并在我的.NET应用程序中显式引用.NET支持库而不是PCL库.

在准备好所有这些并能够成功编译PCL适配库之后,我将重新使用原始.NET库中的单元测试,现在引用PCL主库和.NET支持库.

这通常非常有效,但对于包含[Serializable]带有[OnDeserialized]装饰方法的类的单元测试:

[Serializable]
public class Foo
{
    [OnDeserialized]
    private void DoSomething(StreamingContext context) { }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下内容TypeLoadException:

在程序集"MyPclAssembly"中键入"Foo"的方法为"DoSomething",其序列化属性的签名不正确.

(可以注意到,OnDeserializedAttribute 包含在便携式子集中,可能是因为它在[DataContract]序列化中也被识别出来.)

在原始.NET库上运行单元测试时,我没有获得异常.我仔细分析了Foo类中的方法签名,它完全符合这些(de-)序列化辅助方法应具有的签名,请参见此处.我也试图改变的可见性[OnDeserialized]方法internalpublic,但无济于事.

使用PCL库时出现此异常的原因是什么,我该怎么做才能避免它?


编辑我已经检查了PCL库的IL …

c# serialization attributes forward-declaration portable-class-library

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

Nuget:在MvvmCross.CrossCore的活动解决方案中找不到兼容的软件包

我试图从NuGet命令行将MvvmCross.HotTuna.CrossCore 3.0.14安装到WindowsPhone 8.0类库中.我尝试这样做时遇到的错误是:

PM> install-package MvvmCross.HotTuna.CrossCore 3.0.14
install-package : No compatible project(s) found in the active solution.
At line:1 char:1
+ install-package MvvmCross.HotTuna.CrossCore 3.0.14
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetNoCompatibleProjects,NuGet.PowerShell.Commands.InstallPackageCommand
Run Code Online (Sandbox Code Playgroud)

在此解决方案中,我有另一个Windows Phone 8应用程序项目(目标Windows Phone OS版本设置为Windows Phone OS 8.0),其中安装了以下MvvmCross软件包.这是先前完成没有任何问题:

<packages>
  <package id="MvvmCross.HotTuna.CrossCore" version="3.0.14" targetFramework="wp71" />
  <package id="MvvmCross.HotTuna.MvvmCrossLibraries" version="3.0.14" targetFramework="wp71" />
  <package id="MvvmCross.HotTuna.Plugin.File" version="3.0.14" targetFramework="wp71" />
  <package id="MvvmCross.HotTuna.Plugin.Json" version="3.0.14" targetFramework="wp71" />
  <package id="MvvmCross.HotTuna.Plugin.Location" version="3.0.14" targetFramework="wp71" />
  <package id="MvvmCross.HotTuna.Plugin.Messenger" version="3.0.14" targetFramework="wp71" />
  <package id="MvvmCross.HotTuna.Plugin.Sqlite" version="3.0.14" targetFramework="wp71" …
Run Code Online (Sandbox Code Playgroud)

nuget-package mvvmcross

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

如何使用Deap最小化函数?

我需要使用遗传算法和PSO最小化函数.

不同的帖子建议使用DEAP(我正在使用python),但我甚至不懂如何开始.

我们可以考虑例如区间i上的f

i=arange(-10,10,0.1)
def f(x):
    return x*sin(x)
Run Code Online (Sandbox Code Playgroud)

如何使用DEAP最小化此功能?

python mathematical-optimization genetic-algorithm deap

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

DateTime.ParseExact - 如何使用相同的格式字符串解析单位和双位小时?

我希望能够解析的串时间,其中运行小时从0到23(小时,分,秒),并且其中用于一个位数小时前述零是任选的.

我希望能够解析为有效对象的时间字符串示例DateTime:

  • 212540
  • 061525
  • 94505

我试图使用C#方法DateTime.ParseExact来管理解析,但我不能在它的生命周期中提出一个格式字符串,可以处理"没有前置零的单位数小时"场景.

我应该如何指定DateTime.ParseExact格式字符串以使用相同的代码行充分解析上面的所有示例?

自定义日期和时间格式MSDN页面的启发,我尝试了以下方法:

DateTime.ParseExact(time_string, "Hmmss", CultureInfo.InvariantCulture);
DateTime.ParseExact(time_string, "%Hmmss", CultureInfo.InvariantCulture);
DateTime.ParseExact(time_string, "HHmmss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

所有这些格式字符串都适用于上面的前两个示例情况,但面对一位数小时而没有前面的零,所有公式都会抛出一个FormatException.

c# datetime string-parsing

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

禁用超线程与更改ProcessorAffinity?

我注意到如果我在BIOS中禁用超线程,我的多线程计算会运行得更快.

我还了解到,我可以通过修改当前进程的处理器关联来以编程方式禁用(逻辑)CPU:例如,在C#中这样:

// using System.Diagnostics;
var current = Process.GetCurrentProcess();
var affinity = current.ProcessorAffinity.ToInt32();
current.ProcessorAffinity = new IntPtr(affinity & 0x5555);
Run Code Online (Sandbox Code Playgroud)

至少从性能的角度来看,通过改变处理器亲和性来禁用每秒(逻辑)CPU与完全禁用超线程具有相同的效果吗?

c# performance affinity hyperthreading

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

DICOM Deflated Explicit VR Little Endian(1.2.840.10008.1.2.1.99)

这种传输语法中的数据是如何组织的?标准说明:

此传输语法适用于整个DICOM数据集的编码.首先根据第A.2节中规定的规则对整个数据集进行编码.然后使用Internet RFC 1951中定义的"Deflate"算法压缩整个字节流.

最初我认为这意味着整个DICOM文件本身都是gzip压缩.但是如果整个文件被gzip压缩,包括包含识别传输语法的头,那么解析器/查看器如何能够读取传输语法以知道它被gzip压缩?

从给定这种类型文件的查看器的角度来看,它如何知道这种传输语法?寻找GZIP标题?

是否有使用此传输语法的公开示例图像?

image-processing dicom deflate

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

.NET Portable库缺少BitConverter.DoubleToInt64Bits,替换速度很慢

我正在用C#开发一个可移植的类库,我希望将其转换double为a long.这个问题最直接的解决方案是使用该BitConverter.DoubleToInt64Bits方法,但不幸的是,这个方法在.NET类库的可移植库子集中不可用.

作为替代方案,我提出了以下"双通"位转换:

var result = BitConverter.ToInt64(BitConverter.GetBytes(x), 0);
Run Code Online (Sandbox Code Playgroud)

我的测试表明,这个表达式始终产生与之相同的结果DoubleToInt64Bits.然而,我的基准测试也表明,这种替代配方约4慢倍DoubleToInt64Bits时,在一个完整的.NET Framework应用程序来实现.

仅使用可移植库子集,是否可以实现替换DoubleToInt64Bits它比上面的公式更快?

c# performance bitconverter

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

在Caliburn.Micro约定TextBox中自定义字符串格式

我有一个通过Caliburn.Micro命名约定TextBox绑定到视图模型编号属性的WPF .我希望能够自定义字符串格式,同时保留Caliburn.Micro已设置的约定绑定.我该怎么办?DistanceTextBox

从我的视图模型:

public double Distance
{
    get { return _distance; }
    set
    {
        _distance = value;
        NotifyOfPropertyChange(() => Distance);
    }
}
Run Code Online (Sandbox Code Playgroud)

从我的观点来看:

<TextBox x:Name="Distance"/>
Run Code Online (Sandbox Code Playgroud)

Distance非零时,我想用固定的小数组显示数字,当Distance为零时,我希望文本框为空.

使用显式绑定我可以将TextBox.Text属性绑定到Distance,然后我可以StringFormat同时设置:

<TextBox x:Name="Distance" Text="{Binding Distance, StringFormat=0.000;;#}"/>
Run Code Online (Sandbox Code Playgroud)

但是,显式Text绑定会使Caliburn.Micro命名约定绑定短路.是否可以自定义字符串格式而无需同时设置TextBox.Text属性的绑定路径,这样我就可以完全依赖Caliburn.Micro来处理Distance-to- TextBoxbinding?

c# wpf binding mvvm caliburn.micro

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

我可以在构造函数调用中将对象的状态设置为对象本身吗?

我正在使用一个预构建的第三方类库(想想.NET Framework ...),它包含一个包含Foo以下成员的类:

public sealed class Foo {
  private object _state;
  public Foo(object state) { _state = state; }
}
Run Code Online (Sandbox Code Playgroud)

Foo包含public _state的制定者.

在特定情况下,我想将设置状态一个的Foo目标对象本身.

不会编译:

Foo f;
f = new Foo(f);   // Compilation error: Use of unassigned local variable 'f'
Run Code Online (Sandbox Code Playgroud)

鉴于上述先决条件,是否有任何我可以设置方式状态一的Foo目标对象本身?


基本原理Timer Windows 8.1中的类不包含使用对象本身Timer(AsyncCallback)分配Timer对象状态的构造函数.我试图将包含此Timer构造函数的.NET代码移植到Windows 8.1类库中,所以我关注的是如何将对象本身传递给其状态成员这里进一步概述这个问题,但我认为提出上述主要问题会更有效.

c# constructor

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