小编Joh*_*esH的帖子

有没有一种很好的方法来转换BitmapSource和Bitmap?

据我所知,从BitmapSource转换为Bitmap的唯一方法是通过不安全的代码...像这样(来自Lesters WPF博客):

myBitmapSource.CopyPixels(bits, stride, 0);

unsafe
{
  fixed (byte* pBits = bits)
  {
      IntPtr ptr = new IntPtr(pBits);

      System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(
        width,
        height,
        stride,
        System.Drawing.Imaging.PixelFormat.Format32bppPArgb,ptr);

      return bitmap;
  }
}
Run Code Online (Sandbox Code Playgroud)

做反过来:

System.Windows.Media.Imaging.BitmapSource bitmapSource =
  System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
    bitmap.GetHbitmap(),
    IntPtr.Zero,
    Int32Rect.Empty,
    System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
Run Code Online (Sandbox Code Playgroud)

框架中有更简单的方法吗?它不在那里的原因是什么(如果不是)?我认为它相当实用.

我需要它的原因是因为我使用AForge在WPF应用程序中执行某些图像操作.WPF希望显示BitmapSource/ImageSource,但AForge可以在Bitmaps上运行.

.net c# wpf bitmap bitmapsource

40
推荐指数
2
解决办法
6万
查看次数

适用于Windows XP/Vista/Win7的免费DNS服务器?

我目前正在开发一个应该跨域工作的安全解决方案,因此我需要一个小的私有DNS服务器来添加各种条目.我可以更改hosts文件以获得相同的结果,但由于hosts文件不支持通配符字符,因此我将拥有大量条目,因此支持通配符的DNS服务器会更容易一些.有什么建议?

sysadmin subdomain dns

35
推荐指数
2
解决办法
6万
查看次数

在ASP.NET MVC ContactsManager教程中是否有一种很好/正确的方法来解决依赖注入循环问题?

如果您不知道我在说什么,请查看教程并尝试自己添加依赖注入,或者尝试一下我对问题的解释.

注意:此问题不在ASP.NET原始教程的范围内.本教程仅建议使用的模式是依赖注入友好的.

问题基本上是Controller,ModelStateWrapper和ContactManagerService之间存在依赖循环.

  1. ContactController构造器采用IContactManagerService.
  2. ContactManagerService构造函数采用IContactManagerRepository (不重要)和IValidationDictionary (ModelStateWrapper实现).
  3. ModelStateWrapper构造函数采用ModelStateDictionary (在控制器上是一个名为"ModelState"的属性).

所以依赖循环是这样的:Controller> Service> ModelStateWrapper> Controller

如果您尝试向此添加依赖项注入,它将失败.所以我的问题是; 我该怎么办呢?其他人已经发布了这个问题,但答案很少,不同,所有看起来都有点"黑客".

我目前的解决方案是从IService构造函数中删除IModelStateWrapper并添加一个Initialize方法,如下所示:

public class ContactController : Controller
{
    private readonly IContactService _contactService;

    public ContactController(IContactService contactService)
    {
        _contactService = contactService;
        contactService.Initialize(new ModelStateWrapper(ModelState));
    }

    //Class implementation...
}

public class ContactService : IContactService
{
    private IValidationDictionary _validationDictionary;
    private readonly IContactRepository _contactRepository;

    public ContactService(IContactRepository contactRepository)
    {
        _contactRepository = contactRepository;
    }

    private void Initialize(IValidationDictionary validationDictionary)
    {
        if(validationDictionary == null)
            throw new ArgumentNullException("validationDictionary");

        _validationDictionary = validationDictionary; …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc dependency-injection inversion-of-control unity-container

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

您维护的任何功能的最高Cyclomatic复杂度是多少?你将如何重构呢?

我正在对我维护的遗留系统进行一些探索,前几天使用NDepend(很棒的工具检查出来).我的发现几乎让我在屏幕上喷了一口咖啡.该系统中按行圈复杂度递减排名的前3个函数是:

  1. SomeAspNetGridControl.CreateChildControls(CC为171 !!!)
  2. SomeFormControl.AddForm(CC为94)
  3. SomeSearchControl.SplitCriteria(CC为85)

我的意思是171,哇!不应该低于20或什么?所以这让我很奇怪.您维护或重构的最复杂功能是什么?你将如何重构这样的方法?

注意:我测量的CC是在代码上,而不是IL.

refactoring cyclomatic-complexity

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

为什么在生产中使用MakeCert工具制作的证书不好?

我目前正在开发一个项目,我已经为该CA证书创建了CA证书和几个子证书.这些证书将用于保护SAMLV2设置中的服务器间通信,因此我将获得身份提供者的证书和服务提供者的证书.用户/浏览器不会验证证书,因此只有服务器需要信任我的自定义CA. 我的证书树看起来像这样:

  • CustomRootCACert
    • CustomIdentityProviderCert
    • CustomServiceProviderCert

现在,我听到很多人说在生产中使用自制证书是不好的.但是,当我问为什么时,人们通常会嘀咕一些关于安全性但却从不详细说明.是否有任何技术原因不在生产中使用我自己的证书?我想不出任何......当然我意识到,如果我失去了对我的根证书的控制,任何人都可以开始创建各种证书.但在这种情况下,他们还必须在我的服务器上安装证书并配置saml应用程序以使用它们.只有这样他们才能开始生成假的saml请求和对我的应用程序的响应.

如果这是唯一的问题,这个解决方案(在生产中使用自制的证书)仍然会比我们今天的登录设置更好.

security ssl certificate certificate-authority saml

11
推荐指数
3
解决办法
4513
查看次数

是否有用于管理应用程序,数据库和外部资源依赖性的良好/可自动化的依赖关系管理工具?

我想尽可能多地构建我们的应用程序依赖项的概述/映射.使用NDepend(我喜欢!)等工具分析.NET应用程序依赖性非常简单.但是当谈到外部依赖关系时,例如数据库和Web服务,我需要更好的东西,最好是可以通过各种工具自动化的东西.

例如,我可能有一个工具填充数据库列表,另一个工具用于填充.NET应用程序列表,第三个工具获取Web服务列表,最后一个工具以某种方式知道如何挖掘应用程序之间的依赖关系通过其他工具找到.

所有或大部分内容都可以自动化,这样我就不必自己维护一个依赖项列表,这些内容很容易出错,并且在我完成时可能会过时.所以我希望有一个可以为我完成所有这些工具的工具,或者至少是一个可以保存,分析和可视化组件和依赖项的工具,而不是自己构建它.我越少越好......

c# database web-services ndepend dependency-management

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

StyleCop MS Build魔术?谁在调用StyleCop目标?

在我们的项目文件中,我们使用StyleCop并在构建过程中运行它.我们修改了项目文件以包含StyleCop目标,如下所示:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
<Import Project="..\..\Tools\Microsoft\StyleCop\v4.3\Microsoft.StyleCop.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
     Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
Run Code Online (Sandbox Code Playgroud)

问题是为什么这有效?谁在调用Microsoft.StyleCop.targets文件中定义的StyleCop目标?

据我所知,启动构建时唯一运行的目标是"构建"目标.我无法在Microsoft.StyleCop.targets文件之外的任何位置找到对"StyleCop"目标的任何引用.再说一次,它为什么被称为?

我想知道的原因是因为如果我们能为自己的自定义任务做类似的事情会很酷.因此,我们可以只导入我们自己的常规目标,而不是编辑我们所有的78个csproj文件:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
<Import Project="Common.targets" />
Run Code Online (Sandbox Code Playgroud)

然后只需在该文件中导入StyleCop,以及需要在每个项目基础上完成的所有其他任务.

请帮我理解.

msbuild stylecop

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

为什么EventRecord.FormatDescription()返回null?

System.Diagnostics.Eventing.Reader.EventLogQuery用于从Windows事件日志中读取事件时,该EventRecord.FormatDescription()方法有时会返回null.为什么是这样?在事件查看器中,有关于返回null的事件的消息.

.net c# event-log

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

C#可以从Java学到什么?

自从我开始编程以来,我一直是"微软开发人员"...我开始学习QBasic然后学习ASP和Visual Basic,最后我开始学习VB.NET,ASP.NET和C#,这是我现在的主要语言.我一直想学习像Java或C++这样的东西,看看"另一面"是什么样的,并了解每个平台的优缺点.唯一的问题是我从来没有找到时间或机会来学习另一种语言.

我的基本理解是Java和C#有很多相似之处以及很多不同之处.来自C#我最感兴趣的是C#可以从Java学到什么,或换句话说,我错过了什么.

c# java

7
推荐指数
4
解决办法
629
查看次数

如何将大型现有数据库(模式)置于源代码管理之下?

我的DBA刚刚失去了他在我们的开发数据库上做的一些开发工作.可怜的家伙.很自然地,我们的经理在我们的状态会议上问他如何发生这种情况以及我们如何避免将来发生这种情况."源头控制可以缓解这个问题"我建议...... dba的回应; "不,我们只是更频繁地备份服务器".现在,我想帮助我的DBA了解源代码控制是什么以及它如何与该架构上的数据库架构和开发相结合.

以前我试过向他解释一下,表和存储过程背后的源代码并没有什么特别之处,它应该在源代码控制系统中(在本例中为TFS).但他只是没有咬人.现在,虽然这个错误是在最近的记忆中,但我想再次尝试.

所以我的问题是,你知道我可以传递给我的DBA的任何好建议,甚至可能有一些资源解释你将如何迁移数据库模式以进行源代码控制并在构建中找到适当的位置部署过程?

关于环境的几个事实:

  • TFS 2008服务器上的源代码管理.
  • 数据库是MS SQL Server 2008,具有> 300个表和> 300个其他对象(sprocs,触发器,函数等).

澄清: 过去,我们一直在与其他DBA一起使用DB Ghost和其他变更管理解决方案.我们甚至拥有VS DB版的许可证!问题是让DBA甚至考虑这种为数据库开发的方式.他真的是老派(即从环境到环境手动迁移),不幸的是他是唯一一个对这个特定数据库有所了解的人.

sql-server version-control tfs database-design build-process

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