Tag: resolution

自定义Autofac的组件分辨率/具有通用协同/反演的问题

首先,抱歉模糊的问题标题。 我无法想出更准确的一个。 鉴于以下类型: { TCommand : ICommand } «interface» «interface» / +———–+ +———————-/—-+ | ICommand | | ICommandHandler | +———–+ +—————————+ ^ | Handle(command: TCommand) | | +—————————+ | ^ | | +————+ +——————-+ | FooCommand | | FooCommandHandler | +————+ +——————-+ ^ | +——————-+ | SpecialFooCommand | +——————-+ 我想写一个方法Dispatch接受任何命令并将其发送到适当的ICommandHandler 。 我认为使用DI容器(Autofac)可能会大大简化从命令类型到命令处理程序的映射: void Dispatch(TCommand command) […]

C#WPF解决方案独立性?

我正在使用C#在WPF中开发一个地图控件。 我正在使用canvas控件,例如400 x 200,其指定的地图区域为例如2,000mx 1,000m。 地图的比例为: canvas_size_in_meters / real_size_in_meters 。 我想找到canvas_size_in_meters。 canvas.ActualWidth给出DIU的宽度(设备独立单位)。 因此,400 DIU是400/96 = 4,17英寸, 提供我的显示器的物理分辨率为96 dpi。 但是,使用标尺,我发现我的显示器的物理分辨率是87 dpi。 (实际上只有少数显示器具有96个物理dpi) DPI差异(10%)转换为屏幕上实际地图控制宽度的+ 10%差异。 如何以英寸为单位测量WPF控件的大小,无论屏幕分辨率和DPI设置如何?

.NET DateTime,与OADate进行转换时的分辨率是否不同?

我正在将DateTime转换为OADate。 我希望在将OADa​​te转换回时获得完全相同的DateTime,但现在它只有毫秒级的分辨率,因此不同。 var a = DateTime.UtcNow; double oadate = a.ToOADate(); var b = DateTime.FromOADate(oadate); int compare = DateTime.Compare(a, b); //Compare is not 0; the date times are not the same 来自a:634202170964319073 来自b的筹码:634202170964310000 OADate双倍:40437.290467951389 这是什么原因? DateTime的分辨率显然足够好。