我有一个模型类,有这样的属性:
[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!"?
如何将小数值格式化为逗号/点后面的单个数字的字符串,以及值小于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) 好吧,我已经成功部署了AppFabric,一切都很顺利,直到我们开始在网站上出现间歇性异常:
ErrorCode <ERRCA0017>:SubStatus <ES0007>:存在临时故障.请稍后重试.(请求失败,因为服务器处于限制状态.)
起初我怀疑服务器内存不足(节流状态),但我最终得出结论,这不是问题.在事件日志中,我发现DistributedCacheService.exe偶尔会崩溃,这导致我在本地开发环境中重新生成错误的简单方法:
如果我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更快地恢复原状?
一位开发人员建议我们将一周中的选择日期存储为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枚举而不是简单的位串?
我的开发团队现在正在使用ASP.NET 3.5/4.0,我们的站点在IIS 7.5上运行.最近,我们一直遇到问题(大约每周一次)导致我们的ASP.NET应用程序抛出内存不足异常."解决方案"是重新启动我们网站上的应用程序池.我说"解决方案"因为它不是解决方案; 它更像是一种绷带,只是让我们的应用程序池保持在合理的状态.在我看来,一些应用程序或许多应用程序正在泄漏内存,这会随着时间的推移而累积并导致内存不足异常.虽然我可以设置IIS以定期重新启动应用程序池,但我宁愿知道如何检测内存泄漏以尝试修复程序而不是继续应用band-aids.是否有任何工具可以检测和记录ASP.NET应用程序的内存泄漏?
此外,当我们切换到使用Telerik的RAD控件时,我们真的开始看到更多这个问题.有没有其他人使用这些控件有类似的问题?
谢谢,
亚伦
我正在使用Googles优秀的Code Prettify,我对它很满意.
但是:有没有人碰巧有一个替代的CSS样式表,所以它会呈现更像Visual Studios的默认着色?绿色评论,红色文字/字符串等
是否真的无法在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项目混合在一起.每当我尝试在另一种语言中定义的类,属性或方法上"转到定义"时,Visual Studio就会将我带到对象浏览器,这非常烦人.调试相同:我无法进入用其他语言编写的项目.
有没有办法来解决这个问题?
在ASP.NET网站上执行方法的最快方法是什么?
场景非常简单:我有一个方法,应该在网页被击中时执行.页面上没有其他任何事情发生,唯一呈现的输出是"完成"消息.我希望处理尽可能快.
每一次点击都是唯一的,因此缓存不是一种选择.
我的计划是使用HttpHandler并在web.config(mypage.ashx)中配置它,而不是常规的.aspx页面.这应该会显着减少开销.
所以我的问题是:有没有比使用HttpHandlers更快的方法来实现这一目标?
我正在尝试使用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文件声明一个能够管理(禁用)跟踪的实例?我应该...在某处使用 ......对象? …
c# ×8
asp.net ×5
vb.net ×5
.net ×4
appfabric ×1
asp.net-mvc ×1
byref ×1
css ×1
enum-flags ×1
httphandler ×1
iis-7.5 ×1
performance ×1
prettify ×1
telerik ×1
trace ×1