javascript

java

python

c#

node.js

android

reactjs

c++

php

jquery

html

css

git

ruby-on-rails

.net

ios

sql

c

string

ruby

.net-如何在DataGridView列中使文本右对齐?

如何在DataGridView列中使文本右对齐? 我正在编写.NET WinForms应用程序。

trans by 2019-10-16T01:03:35Z

.net-温莎-从容器中提取瞬态对象

如何从容器中拉出本质上是瞬时的对象? 我是否必须在容器中注册它们并注入需要类的构造函数中? 将一切都注入到构造函数中感觉不好。 同样对于一个班级,我也不想创建257108206344523030592并将工厂注入需要的班级。

我想到的另一个想法是在需要的基础上“新”它们。 但是我还将(通过属性)一个2571082063463462007808组件注入到我的所有类中。 因此,如果我对它们进行了更新,则必须在这些类中手动实例化25710820634620072007809。 如何继续将容器用于我的所有课程?

Logger注入:我的大多数类都定义了2571082063463462007808属性,除非存在继承链(在这种情况下,只有基类才具有此属性,而所有派生类都使用该属性)。 当通过Windsor容器实例化这些对象时,会将我的25710820634620072007809实现注入到它们中。

//Install QueueMonitor as Singleton
Container.Register(Component.For<QueueMonitor>().LifestyleSingleton());
//Install DataProcessor as Trnsient
Container.Register(Component.For<DataProcessor>().LifestyleTransient());

Container.Register(Component.For<Data>().LifestyleScoped());

public class QueueMonitor
{
    private dataProcessor;

    public ILogger Logger { get; set; }

    public void OnDataReceived(Data data)
    {
        //pull the dataProcessor from factory    
        dataProcessor.ProcessData(data);
    }
}

public class DataProcessor
{
    public ILogger Logger { get; set; }

    public Record[] ProcessData(Data data)
    {
        //Data can have multiple Records
        //Loop through the data and create new set of Records
        //Is this the correct way to create new records?
        //How do I use container here and avoid "new" 
        Record record = new Record(/*using the data */);
        ...

        //return a list of Records    
    }
}


public class Record
{
    public ILogger Logger { get; set; }

    private _recordNumber;
    private _recordOwner;

    public string GetDescription()
    {
        Logger.LogDebug("log something");
        // return the custom description
    }
}

问题:

  1. 如何在不使用“新”的情况下创建新的25710820634620072007对象?

  2. QueueMonitorSingleton,而Data是“作用域”。 如何将25710820634620072007注入OnDataReceived()方法中?

trans by 2019-10-16T00:36:12Z

.net-MSBuild ProjectReference:private(“复制本地”)-允许的值和行为是什么?

TL; DR是否有任何正式文档详细描述了<private> /“复制本地”选项如何与MSBuild一起使用? 哪些价值应该纳入其中?


将项目引用从Visual Studio中的一个项目添加到另一个项目时,它将在True MSBuild文件中添加<private>

当您将文件引用从Visual Studio中的一个项目添加到文件系统中的程序集文件时,它将向True MSBuild文件添加<private>

在这两种情况下,对于Visual Studio设置<private>,将添加子元素TrueFalse

<private>True似乎记录在Common MSBuild Project Items下:

<private>

您会注意到,

  1. <private>完全没有记录True项目
  2. <private>未列出TrueFalse作为可能的值。

所以。 ?? 是否有任何正式文档(我会很高兴拥有一个不错的博客文章)详细描述<private>选项的工作方式? 是文档完全犯错还是还有其他内容?


我的VS 2013 Express的示例代码片段在这里:

...
  <ItemGroup>
    <Reference Include="ClassLibrary2">
      <HintPath>C:\Somewhere\ClassLibrary2.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="System" />
...
  <ItemGroup>
    <ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj">
      <Project>{861dd746-de2e-4961-94db-4bb5b05effe9}</Project>
      <Name>ClassLibrary1</Name>
      <Private>False</Private>
    </ProjectReference>
...
trans by 2019-10-15T23:53:47Z

.net-如果删除自动添加的supportedRuntime元素会怎样?

我有我的项目目标4.0。我将其更新为4.5,并添加了VS

<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>

除了更改TargetFrameworkVersion之外,我很好奇这是否多余。我的理解是,如果运行时找不到supportedRuntime,它将使用用于构建exe的.net版本。 因此,在这种情况下,exe是使用4.5构建的,也有使用4.5的说法。 是否具有此功能并在仅具有4.0的计算机上运行它会有所不同?

trans by 2019-10-15T21:13:52Z

转换DataRowCollection到IEnumerable <T>

我想在.NET 3.5中执行类似的操作。 最快的方法是什么?

IEnumerable<DataRow> collection = 
    TypedDataSet.TypedTableBase<DataRow>.Rows as IEnumerable<DataRow>;
trans by 2019-10-15T19:21:03Z

c#-强制XmlSerializer将DateTime序列化为'YYYY-MM-DD hh:mm:ss'

我有一些RESTful服务的XSD架构。 与YYYY-MM-DD hh:mm:ss工具结合使用以生成C#代码时,XSD的2010-08-20T20:07:03.915039Z生成以下代码:

[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="date")]
public System.DateTime time {
    get {
        return this.timeField;
    }
    set {
        this.timeField = value;
    }
}

使用YYYY-MM-DD hh:mm:ss将XML反序列化为对象时,一切似乎都很好。 我面临的问题是该服务期望日期格式为2010-08-20T20:07:03.915039Z,而XSD生成的代码似乎只产生YYYY-MM-DD

如果我将XSD手动修改为YYYY-MM-DD hh:mm:ss类型,则生成的C#代码将产生:2010-08-20T20:07:03.915039Z

基本上,如何强制序列化产生YYYY-MM-DD hh:mm:ss? 是否可以对XSD进行某些操作,或者可以对生成的C#代码进行更改?

trans by 2019-10-15T17:12:55Z

.net-在哪里可以将自定义类放在ASP.NET MVC中?

我有一些实用程序功能和分页功能。 我想分别为这些函数创建名为Utility和Pagination的类,以便可以在多个控制器中使用这些类函数。

那么我可以在哪里将这些类放在文件夹结构中,然后如何访问呢?

trans by 2019-10-15T14:39:15Z

删除所有DataGrid行和单元格边框

我想隐藏(或删除)我的数据网格中所有行(以及随后的单元格)的所有边框,想想一个基本的HTML表。 我四处张望,大多数问题似乎都是关于样式设计而不是隐藏它们。

我已经尝试过像这样设置BorderBrush和BorderThickness:

 <DataGrid.RowStyle>
     <Style TargetType="DataGridRow">
         <Setter Property="BorderBrush" Value="Transparent" />
         <Setter Property="BorderThickness" Value="0" />
     </Style>
  </DataGrid.RowStyle>

尝试了相同的CellStyle,但没有骰子,仍然有边框。

trans by 2019-10-15T08:35:22Z

如何从.NET流中获取MemoryStream?

我有以下构造函数方法,该方法从文件路径打开MemoryStream

MemoryStream _ms;

public MyClass(string filePath)
{
    byte[] docBytes = File.ReadAllBytes(filePath);
    _ms = new MemoryStream();
    _ms.Write(docBytes, 0, docBytes.Length);
}

我需要更改它以接受Stream而不是文件路径。 从Stream对象中获取MemoryStream的最简单/最有效的方法是什么?

trans by 2019-10-15T07:51:26Z

.net-使用Windows Service和C#检测USB驱动器的插入和移除

研究制作USB分布式应用程序的可能性
在插入USB记忆棒时会自动启动,在取出记忆棒时会关闭

将使用.Net和C#。
寻找建议如何使用C#进行处理?


更新:两种可能的解决方案将其实现为服务。
-覆盖WndProc
要么
-在ManagementEventWatcher中使用WMI查询

trans by 2019-10-15T07:35:06Z

c#-使用将net461设置为唯一框架的ASP.NET Core Web应用程序(.NET Core)与使用(.NET Framework)临时文件之间的区别

随着.NET Core RC2的发布,Microsoft做到了,因此现在有3种Web应用程序模板:

  • ASP.NET Web应用程序(.NET Framework)-旧的
  • ASP.NET Core Web应用程序(.NET Framework)-新版本,仅在Windows上托管
  • ASP.NET Core Web应用程序(.NET Core)-Linux,OSX,Windows

我正在尝试使用新的Core Web Application模板,但没有尝试针对Linux,OSX,Windows,因此ASP.NET Core Web Application(.NET Framework)似乎非常适合我。 我花了一段时间,但我了解到,要添加一个适用于此项目类型的类库,您需要添加一个类库(.NET Core)并将Frameworks部分更改为仅net461以匹配Web应用程序。

"frameworks": {
    "net461": { }
}

我的问题:

创建ASP.NET Core Web应用程序(.NET Core)和project.json之间有什么区别,使net461成为唯一的目标框架

仅创建一个ASP.NET Core Web应用程序(.NET Framework)项目,默认情况下仅包含net461。

我还没有意识到其他差异,例如项目的发布方式等?

trans by 2019-10-15T06:29:39Z

asp.net-IIS配置错误-此配置部分不能在此路径中使用

当我尝试运行我的网站时,出现以下错误。

该网站托管在Windows 2012 R2上。

配置错误:无法在此路径上使用此配置部分。 当节锁定在父级时,会发生这种情况。 锁定默认情况下是(overrideModeDefault =“ Deny”),或者是由一个带有overlayMode =“ Deny”或旧版allowOverride =“ false”的位置标记显式设置的。

错误代码:0x80070021

配置源:

 60:     <httpErrors errorMode="Detailed" />
 61:     <handlers>
 62:       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />

以下是我尝试过的一切:

  1. 在IIS中使用“添加功能和角色”安装.Net 3.5
  2. 在applicationHost文件中,我进行了以下代码更改:

    将节处理程序,模块,anonymousAuthentication,basicAuthentication等的覆盖模式默认值从“ Deny”更改为“ Allow”。

  3. 已在.Net 3.5和4.5中完成“ HTTP激活”。

以下是我的Web配置文件处理程序代码:

<handlers>
  <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
  <remove name="OPTIONSVerbHandler"/>
  <remove name="TRACEVerbHandler"/>
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
</handlers>
  1. 在此路径中的功能窗口中安装了所有功能:Internet信息服务->万维网服务->应用程序开发功能->除CGI之外的所有功能均已启用。

  2. 在功能委托中,ASP以前是只读的,我将其更改为“读/写”

  3. 使用命令提示符解锁处理程序

但是我仍然无法摆脱错误。我的本地实例运行正常。 另外,我有一个可以在该网站上运行的开发服务器,仅在生产服务器上出现此错误。

请帮助我找出可能导致此问题的原因。

trans by 2019-10-14T15:10:58Z

编译时检测目标框架版本

我有一些使用扩展方法的代码,但是使用VS2008中的编译器在.NET 2.0下进行编译。 为方便起见,我必须声明ExtensionAttribute:

/// <summary>
/// ExtensionAttribute is required to define extension methods under .NET 2.0
/// </summary>
public sealed class ExtensionAttribute : Attribute
{
}

但是,我现在希望包含该类的库也可以在.NET 3.0、3.5和4.0下进行编译-无需发出“在多个位置定义了ExtensionAttribute”警告。

当目标框架版本为.NET 2时,是否可以使用任何编译时指令来仅包含ExtensionAttribute?

trans by 2019-10-14T14:01:40Z

c#-有关在.NET中干净终止线程的问题

我从阅读过很多关于该主题的文章中了解到Thread.Abort()是邪恶的,因此,我目前正在淘汰中止程序,以更干净的方式替换它。 并在这里比较了人们关于stackoverflow的用户策略,然后阅读了MSDN的“如何:创建和终止线程(C#编程指南)”后,两者都指出了一种非常相似的方法-即使用while (!_shouldStop)方法检查策略 ,这很好,但我还有几个问题。

立即对我来说突出的是,如果您没有一个仅运行循环运算代码的简单工作进程,该怎么办? 例如,对于我来说,我的过程是一个后台文件上传器过程,实际上我确实遍历每个文件,因此,可以确保在顶部添加我的while (!_shouldStop),它涵盖了每次循环迭代,但我还有很多事情要做 在它到达下一个循环迭代之前发生的进程,我希望这个取消过程很灵活; 不要告诉我我需要在整个工作函数中每4-5行向下循环播放while循环吗?!

我真的希望有更好的方法,如果实际上这是正确的(唯一的)方法,或者他们过去为实现我所追求的目标而使用的方法,是否有人可以向我提供建议。

谢谢帮派。

进一步阅读:所有这些SO响应都假定工作线程将循环。 那对我来说并不舒服。 如果是线性但及时的后台操作怎么办?

trans by 2019-10-14T12:19:49Z

.net-用于ASP.NET MVC开发的Windows Azure或Amazon EC2?

如果要构建使用MSSQL数据库的企业ASP.NET MVC应用程序,最好使用Windows Azure或Amazon EC2?

我没有找到满意的答案。

那么,这两种云平台(价格,性能,集成的简便性……)的优缺点是什么?

trans by 2019-10-14T11:40:07Z

.net-如何在C#中执行SHA1文件校验和?

如何在文件上使用SHA1CryptoServiceProvider()创建文件的SHA1校验和?

trans by 2019-10-14T10:10:42Z

Html Agility Pack仍然是最好的.NET HTML解析器吗?

不久前,Html Agility Pack成为了StackOverflow问题的答案,它仍然是最佳选择吗? 还应考虑其他哪些选择? 还有更轻巧的东西吗?

trans by 2019-10-14T08:46:30Z

CodeGo.net>如何处理使用MemoryCache昂贵的建设运作?

在ASP.NET MVC项目中,我们有几个数据实例,这些实例需要大量的资源和时间来构建。 我们要缓存它们。

key提供了一定级别的线程安全性,但不足以避免并行运行多个构建代码实例。 这是一个例子:

var data = cache["key"];
if(data == null)
{
  data = buildDataUsingGoodAmountOfResources();
  cache["key"] = data;
}

如您所见,在繁忙的网站上,数百个线程可以同时进入if语句,直到构建数据为止,并使构建操作更加缓慢,从而不必要地消耗了服务器资源。

在MemoryCache中有一个原子key实现,但是它错误地要求“设置值”而不是“代码来检索要设置的值”,我认为这使给定的方法几乎完全无用。

我们一直在围绕MemoryCache使用我们自己的临时支架,以使其正确运行,但是它需要显式的keys。 使用每个条目的锁定对象很麻烦,并且我们通常通过共享锁定对象来逃避这远非理想。 这使我认为避免这种约定的原因可能是故意的。

所以我有两个问题:

  • 是否最好不要使用key建筑法规? (我想这可能证明对某人有更好的响应能力)

  • 对于此类锁定,为MemoryCache实现每个条目锁定的正确方法是什么? 使用key字符串作为锁定对象的强烈要求在“ .NET锁定101”处被取消。

trans by 2019-10-14T08:05:49Z

为什么包含缓慢? 通过主键获取多个实体的最有效方法?

通过主键选择多个实体的最有效方法是什么?

public IEnumerable<Models.Image> GetImagesById(IEnumerable<int> ids)
{

    //return ids.Select(id => Images.Find(id));       //is this cool?
    return Images.Where( im => ids.Contains(im.Id));  //is this better, worse or the same?
    //is there a (better) third way?

}

我意识到我可以进行一些性能测试以进行比较,但是我想知道实际上是否有比这两种方法更好的方法,并且正在寻找对这两个查询(如果有)之间有何区别的启发 “翻译”。

trans by 2019-10-14T04:02:23Z

.net-用C#将两个列表映射到字典中

给定两个大小相同的IEnumerable,如何使用Linq将其转换为Dictionary

IEnumerable<string> keys = new List<string>() { "A", "B", "C" };
IEnumerable<string> values = new List<string>() { "Val A", "Val B", "Val C" };

var dictionary = /* Linq ? */;

预期的输出是:

A: Val A
B: Val B
C: Val C

我想知道是否有一些简单的方法来实现它。

我应该担心表现吗? 如果我有大量收藏怎么办?


我没有一种更简单的方法来执行此操作,目前我正在这样做:

我有一个扩展方法,该方法将循环IEnumerable提供我的元素和索引号。

public static class Ext
{
    public static void Each<T>(this IEnumerable els, Action<T, int> a)
    {
        int i = 0;
        foreach (T e in els)
        {
            a(e, i++);
        }
    }
}

我有一个方法,该方法将循环一个Enumerable并使用索引检索另一个Enumerable上的等效元素。

public static Dictionary<TKey, TValue> Merge<TKey, TValue>(IEnumerable<TKey> keys, IEnumerable<TValue> values)
{
    var dic = new Dictionary<TKey, TValue>();

    keys.Each<TKey>((x, i) =>
    {
        dic.Add(x, values.ElementAt(i));
    });

    return dic;
}

然后我像这样使用它:

IEnumerable<string> keys = new List<string>() { "A", "B", "C" };
IEnumerable<string> values = new List<string>() { "Val A", "Val B", "Val C" };

var dic = Util.Merge(keys, values);

输出正确:

A: Val A
B: Val B
C: Val C
trans by 2019-10-13T15:49:31Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共90页