小编Jak*_*ade的帖子

如何显示DisplayAttribute.Description属性值?

我有一个模型类,有这样的属性:

[Display(Name = "Phone", Description="Hello World!")]
public string Phone1 { get; set; }
Run Code Online (Sandbox Code Playgroud)

在我的视图中显示标签并渲染文本框以进行输入非常简单:

@Html.LabelFor(model => model.Organization.Phone1)
@Html.EditorFor(model => model.Organization.Phone1)
@Html.ValidationMessageFor(model => model.Organization.Phone1)
Run Code Online (Sandbox Code Playgroud)

但是如何渲染Description annotation属性的值,即"Hello World!"?

c# asp.net asp.net-mvc

69
推荐指数
6
解决办法
4万
查看次数

将十进制值格式化为前导空格的字符串

如何将小数值格式化为逗号/点后面的单个数字的字符串,以及值小于100的前导空格?

例如,十进制值12.3456" 12.3"与单个前导空格一样输出.10.011会的" 10.0".123.123"123.1"

我正在寻找一种解决方案,它适用于标准/自定义字符串格式,即

decimal value = 12.345456;
Console.Write("{0:magic}", value); // 'magic' would be a fancy pattern.
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net string-formatting

50
推荐指数
3
解决办法
5万
查看次数

AppFabric无法从重启中恢复良好

好吧,我已经成功部署了AppFabric,一切都很顺利,直到我们开始在网站上出现间歇性异常:

ErrorCode <ERRCA0017>:SubStatus <ES0007>:存在临时故障.请稍后重试.(请求失败,因为服务器处于限制状态.)

起初我怀疑服务器内存不足(节流状态),但我最终得出结论,这不是问题.在事件日志中,我发现DistributedCacheService.exe偶尔会崩溃,这导致我在本地开发环境中重新生成错误的简单方法:

  • 启动网站,向缓存添加一些内容.
  • 重新启动"AppFabric缓存服务".
  • ......我开始收到错误.

如果我Get-CacheClusterHealth在重新启动服务之前做了一件事,它看起来像这样:

NamedCache = MyCacheName
    Healthy              = 100,00
    UnderReconfiguration = 0,00
    NotPrimary           = 0,00
    NoWriteQuorum        = 0,00
    Throttled            = 0,00
Run Code Online (Sandbox Code Playgroud)

重启后:

Unallocated named cache fractions
---------------------------------

NamedCache = MyCacheName
    Unallocated fraction     = 100,00
Run Code Online (Sandbox Code Playgroud)

当我得到结果时Get-CacheClusterHealth,网站失败了.据我所知,它会在一段时间后(10多分钟)纠正自己.

有没有办法让AppFabric更快地恢复原状?

.net c# vb.net asp.net appfabric

48
推荐指数
1
解决办法
2982
查看次数

标志枚举和按位操作与"字符串"

一位开发人员建议我们将一周中的选择日期存储为7个字符的1和0字符串,即周一和周五的"1000100".我更喜欢(强烈建议)一个带有Flags枚举和按位操作的解决方案,我认为这是一种更简洁的方法,对其他开发人员应该更容易理解.

  [Flags()]
  public enum Weekdays : int
  {
    Monday = 1,
    Tuesday = 2,
    Wednesday = 4,
    Thursday = 8,
    Friday = 16,
    Saturday = 32,
    Sunday = 64
  }
Run Code Online (Sandbox Code Playgroud)

然而,当我开始实现一个示例解决方案时,我意识到简单的字符串方法可能更容易:当然,如果您只是查看数据,则位串比"17"更明显.我发现C#按位运算反直觉且非常冗长:

Weekdays workDays = Weekdays.Monday | Weekdays.Tuesday;
if ((workDays & Weekdays.Monday) == Weekdays.Monday) 
{...}
Run Code Online (Sandbox Code Playgroud)

当然,这可以很好地包含在扩展方法中,但是我们突然最终得到的代码行数与字符串解决方案的数量相同,我几乎不能认为按位代码更容易阅读.

话虽这么说,我仍然会使用标志枚举和按位操作.我能想到的主要好处是

  • 更好的性能
  • 存储所需的空间更少

那么我如何向同事出售逐位解决方案呢?我是不是该?使用此方法比字符串有什么其他好处?完成示例项目后,我发现团队仍然选择了基于字符串的解决方案.我需要一些更好/更强的论点.为什么要使用Flags枚举而不是简单的位串?

c# bit-manipulation enum-flags

35
推荐指数
3
解决办法
4万
查看次数

检测ASP.NET中的内存泄漏

我的开发团队现在正在使用ASP.NET 3.5/4.0,我们的站点在IIS 7.5上运行.最近,我们一直遇到问题(大约每周一次)导致我们的ASP.NET应用程序抛出内存不足异常."解决方案"是重新启动我们网站上的应用程序池.我说"解决方案"因为它不是解决方案; 它更像是一种绷带,只是让我们的应用程序池保持在合理的状态.在我看来,一些应用程序或许多应用程序正在泄漏内存,这会随着时间的推移而累积并导致内存不足异常.虽然我可以设置IIS以定期重新启动应用程序池,但我宁愿知道如何检测内存泄漏以尝试修复程序而不是继续应用band-aids.是否有任何工具可以检测和记录ASP.NET应用程序的内存泄漏?

此外,当我们切换到使用Telerik的RAD控件时,我们真的开始看到更多这个问题.有没有其他人使用这些控件有类似的问题?

谢谢,

亚伦

c# asp.net telerik iis-7.5

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

如何让Google Prettify呈现更像Visual Studio

我正在使用Googles优秀的Code Prettify,我对它很满意.

但是:有没有人碰巧有一个替代的CSS样式表,所以它会呈现更像Visual Studios的默认着色?绿色评论,红色文字/字符串等

css asp.net prettify

28
推荐指数
2
解决办法
1714
查看次数

C#扩展方法是否允许通过引用传递参数?

是否真的无法在C#中创建扩展方法,其中实例作为引用传递?

这是一个示例VB.NET控制台应用程序:

Imports System.Runtime.CompilerServices

Module Module1
  Sub Main()
    Dim workDays As Weekdays

    workDays.Add(Weekdays.Monday)
    workDays.Add(Weekdays.Tuesday)

    Console.WriteLine("Tuesday is a workday: {0}", _ 
      CBool(workDays And Weekdays.Tuesday))
    Console.ReadKey()
  End Sub
End Module

<Flags()> _
Public Enum Weekdays
  Monday = 1
  Tuesday = 2
  Wednesday = 4
  Thursday = 8
  Friday = 16
  Saturday = 32
  Sunday = 64
End Enum

Module Ext
  <Extension()> _
  Public Sub Add(ByRef Value As Weekdays, ByVal Arg1 As Weekdays) 
    Value = Value + Arg1
  End Sub
End Module
Run Code Online (Sandbox Code Playgroud)

请注意,Value参数是ByRef传递的. …

c# vb.net extension-methods byref

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

混合C#和VB.NET项目=破解"转到定义"

我有一个很大的解决方案,C#和VB.NET项目混合在一起.每当我尝试在另一种语言中定义的类,属性或方法上"转到定义"时,Visual Studio就会将我带到对象浏览器,这非常烦人.调试相同:我无法进入用其他语言编写的项目.

有没有办法来解决这个问题?

.net c# vb.net visual-studio-2010

19
推荐指数
2
解决办法
2853
查看次数

比HttpHandlers更快的东西?

在ASP.NET网站上执行方法的最快方法是什么?

场景非常简单:我有一个方法,应该在网页被击中时执行.页面上没有其他任何事情发生,唯一呈现的输出是"完成"消息.我希望处理尽可能快.

每一次点击都是唯一的,因此缓存不是一种选择.

我的计划是使用HttpHandler并在web.config(mypage.ashx)中配置它,而不是常规的.aspx页面.这应该会显着减少开销.

所以我的问题是:有没有比使用HttpHandlers更快的方法来实现这一目标?

asp.net performance httphandler

18
推荐指数
1
解决办法
3714
查看次数

通过app.config关闭跟踪

我正在尝试使用System.Diagnostics做一些非常基本的日志记录.我想我会使用框中的内容,而不是像Log4Net或EntLib那样使用额外的依赖.

我已经全部成立,跟踪工作非常好.代码段:

Trace.TraceInformation("Hello World")
Run Code Online (Sandbox Code Playgroud)

App.config中:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics>
    <trace autoflush="true" indentsize="4">
      <listeners>
        <add name="TraceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="Trace.log" traceOutputOptions="DateTime" />
        <remove name="Default" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)

而我的小"Hello World"在我的Trace.log文件中显示得很好.但现在我想关闭跟踪,所以我深入了解MSDN并找到如何:配置跟踪开关 .我添加了<switches>元素,现在我的app.config看起来像这样:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics>
    <trace autoflush="true" indentsize="4">
      <listeners>
        <add name="TraceListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="Trace.log" traceOutputOptions="DateTime" />
        <remove name="Default" />
      </listeners>
    </trace>
    <switches>
      <add name="Data" value="0" />
    </switches>
  </system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)

value="0"应关闭跟踪-至少如果你然后按照如何:创建和初始化跟踪开关,它告诉您添加这行代码:

Dim dataSwitch As New BooleanSwitch("Data", "DataAccess module")
Run Code Online (Sandbox Code Playgroud)

这对我来说没有意义:我只需要BooleanSwicth通过.config文件声明一个能够管理(禁用)跟踪的实例?我应该...在某处使用 ......对象? …

.net c# vb.net configuration trace

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