小编Jos*_*osh的帖子

最大方法名称长度

有没有人碰巧知道您选择的编程语言中方法名称的最大长度是多少?我打算将这个问题作为一个特定的C#问题,但我认为在整个范围内了解它会很好.

涉及的因素有哪些:

  • 语言规范是否限制了这个?
  • 编译器将其限制为什么?
    • 32位与64位机器有什么不同?

compiler-construction programming-languages specifications name-length

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

使用'var'和'dynamic'时的异常

我在Anomaly上碰到了一点,这是第一次使用var关键字bit me.

采用这种非常简单的方法

public static Int32? GetNullableInt32(Int32 num)
{
    return new Nullable<Int32>(num);
}
Run Code Online (Sandbox Code Playgroud)

现在我们可以使用dynamic参数调用此方法,一切都将按预期工作.

public static void WorksAsAdvertised()
{
    dynamic thisIsAnInt32 = 42;

    //Explicitly defined type (no problems)
    Int32? shouldBeNullableInt32 = GetNullableInt32(thisIsAnInt32);

    Console.Write(shouldBeNullableInt32.HasValue);
}
Run Code Online (Sandbox Code Playgroud)

但是,通过声明shouldBeNullableInt32使用隐式类型,结果远非所期望的.

public static void BlowsUpAtRuntime()
{
    dynamic thisIsAnInt32 = 42;

    //Now I'm a dynamic{int}... WTF!!!
    var shouldBeNullableInt32 = GetNullableInt32(thisIsAnInt32);

    //Throws a RuntimeBinderException
    Console.Write(shouldBeNullableInt32.HasValue);
}
Run Code Online (Sandbox Code Playgroud)

而不是Nullable<Int32>返回值get被视为动态类型.即便如此,底层Nullable<T>也不会被保留.由于System.Int32没有命名的属性HasValue,RuntimeBinderException因此抛出了a .

我会非常 …

c# compiler-construction dynamic

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

是否有任何实用程序可以帮助我重构CSS

我正在使用一些写得不好的CSS,至少可以说.我不是设计/ CSS专家,但我至少理解CSS中的C语言.虽然VS-2008内置的CSS支持比以前的版本有了很大的改进,但它仍然没有完全符合我的要求.

我想知道是否有人知道一个好的程序或实用程序,它将帮助我重构和清理我的CSS,就像ReSharper允许用C#做的那样.

一些很好的功能:

  • 检查CSS文件并确定提取字体样式,颜色等常用样式的方法......
  • VS-2008的插件会很棒!
  • 检查标记文件并提出一些改进当前类和样式用法的建议.

css asp.net refactoring

23
推荐指数
2
解决办法
3190
查看次数

MVC 3模型验证问题 - 监督或设计

我遇到了一个场景,我需要知道哪个属性当前正在自定义中验证ValidationAttribute.我认为这在MVC 3中很容易,因为ValidationContext它被传递到IsValid方法中.

没有详细说明,这是基本的想法:

protected override ValidationResult IsValid(Object value, ValidationContext validationContext) {

   if (ShouldICareAboutYou(validationContext.MemberName))
   {
       //Do some stuff
   }

   //Return the results
}
Run Code Online (Sandbox Code Playgroud)

这似乎是完美的解决方案,事实上,当使用Validator.TryValidateObject一切工作精美地对我的自定义ValidationAttribute进行单元测试时!

然而...

在调用时TryUpdateModel,或TryValidateModel在我的控制器中,验证运行,但ValidationContext.MemberName为null.

哇啊?!?

我做了一点调查,果然,内部DataAnnotationsModelValidator就是代码......或缺乏代码.

public override IEnumerable<ModelValidationResult> Validate(object container) {
    // Per the WCF RIA Services team, instance can never be null (if you have
    // no parent, you pass yourself for the "instance" parameter).
    ValidationContext context = new …
Run Code Online (Sandbox Code Playgroud)

.net c# validation asp.net-mvc asp.net-mvc-3

21
推荐指数
2
解决办法
2550
查看次数

处理与Silverlight的Specflow异步

Silverlight Unit测试框架定义了一个处理异步调用的过程(从Microsoft.Silverlight.Testing.SilverlightTest派生测试类,添加异步属性,使用EnqueueXXX方法.)考虑SpecFlow在测试类和步骤之间的分离:

  • 是否可以使用这些工具来等待异步行为的测试中的Silverlight方法调用(例如进行Web服务调用)?
  • 如果他们不能,那么在SpecFlow测试文件中处理此行为的指导是什么?(也许使用在事件处理程序中跳过并等待它的AutoResetEvent?)

.net silverlight tdd bdd specflow

12
推荐指数
1
解决办法
1292
查看次数

什么是"Dispatcher"设计模式?

什么是"调度程序"模式以及如何在代码中实现它?

我有一个通用对象的属性包,并希望将检索委托给泛型方法.

目前,我有物业在包中寻找特定的钥匙.例如:

private Dictionary<String, Object> Foo { get; set; }
private const String WidgetKey = "WIDGETKEY";

public Widget? WidgetItem
{
    get
    {
        return Foo.ContainsKey(WidgetKey) ? Foo[WidgetKey] as Widget: null;
    }
    set
    {
        if (Foo.ContainsKey(WidgetKey))
            Foo[WidgetKey] = value;
        else
            Foo.Add(WidgetKey, value);
    }
}
Run Code Online (Sandbox Code Playgroud)

有人建议,这可能是"调度员"模式更通用,但我一直无法找到一个好的描述或例子.

我正在寻找一种更通用的方式来处理属性包存储/检索.

.net c# generics design-patterns

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

使用基于操作的安全性的ASP.Net安全性

我在ASP.Net过去曾与之合作的所有安全资料都是以角色为基础的.这很容易实现,ASP.Net适用于这种类型的安全模型.但是,我正在寻找比简单的基于角色的安全性更细粒度的东西.

基本上我希望能够编写这样的代码:

if(SecurityService.CanPerformOperation("SomeUpdateOperation")){
    // perform some update logic here
}
Run Code Online (Sandbox Code Playgroud)

我还需要行级安全访问,如下所示:

if(SecurityService.CanPerformOperation("SomeViewOperation", SomeEntityIdentifier)){
   // Allow user to see specific data
}
Run Code Online (Sandbox Code Playgroud)

再次,细粒度的访问控制.有没有这样的东西已经建成?我可以放入ASP.Net并开始使用的一些框架,或者我将不得不自己构建这个框架?

asp.net security

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

WPF DataGrid验证错误?

这可能是预期的功能,但它确实对我来说似乎是个错误.

我正在使用开箱即用的WPF DataGrid,绑定到ObservableCollection并尝试使用一些验证规则以提供良好的用户反馈.毋庸置疑,还有比我更重要的问题,但我会坚持立即.

以下是问题的摘要:

  1. ItemsSource财产绑定到ObservableCollection<T>
  2. 填充集合
  3. 以一种会导致验证错误的方式编辑网格中的项目
  4. 以编程方式从中删除该项目 ObservableCollection<T>

执行这些步骤后,GridView会正确识别该项目已从集合中删除,并从网格中删除该行.但是,Grid现在处于无效状态,并且无法通过Grid上的UI执行进一步的操作!

再次,这似乎是一个很大的错误,因为能够以编程方式从集合中删除项目是一件大事.

有没有人碰到这个?有关如何绕过它的任何建议吗?

值得注意的是,我已经创建了一个单独的解决方案来解决这个问题,但是要回答一些问题:

你的对象实现了INotifyPropertyChanged吗?

这是一个自定义集合吗? 没有普通的老ObservableCollection<T>

你是如何从收藏品中删除物品的?

//Find any newly added item and remove it  
var someObject = SomeObjects
             .Where(obj => obj.SomeProperty == SomeValue)
             .First();

SomeObjects.Remove(someObject );
Run Code Online (Sandbox Code Playgroud)

你如何绑定验证规则?

<DataGridTextColumn Header="SomeProperty">
    <DataGridTextColumn.Binding>
        <Binding Path="SomeProperty">
            <Binding.ValidationRules>
                <val:RequiredValidator ValidationStep="ConvertedProposedValue" 
                     ValidatesOnTargetUpdated="True" />
            </Binding.ValidationRules>
        </Binding>
    </DataGridTextColumn.Binding>
</DataGridTextColumn>
Run Code Online (Sandbox Code Playgroud)

您的验证规则是什么样的?

public class RequiredValidator : ValidationRule
{
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
    {
        if (value == …
Run Code Online (Sandbox Code Playgroud)

.net c# validation wpf gridview

8
推荐指数
1
解决办法
4074
查看次数

Codeplex/Sourceforge供内部使用

我正在寻找一个免费/开源的协作项目经理,可以在我的工作场所内部部署,其行为类似于Codeplex或Sourceforge.有没有人知道这样的事情,如果有的话,你有这方面的经验.

要求:

  • 开源免费
  • 本地可部署
  • 具有Sourceforge/Codeplex中相同类型的功能
    • 问题/特征跟踪
    • 社区互动(即投票,角色等)
    • SCM集成(可选)
  • .NET/Windows友好(可选)

每个企业最终都拥有内部实用程序和开发人员创建的特定于域的应用程序,以使生活更轻松 鉴于内部开发者社区的投入,他们有可能变得更好(你能说GMail ......),我只想通过为这种互动提供一个容易的地方来内部培养这样的环境.

更新:

所以我喜欢我在Trac和GForge中看到的东西,但两者都非常适合UNIX/Subversion环境.我应该指定这个,但我们是一个从上到下的MS商店.您认为在MS .NET环境中尝试使用它们有多实用?那就像试图通过一个圆孔推一个方钉?

version-control project-management open-source codeplex

6
推荐指数
1
解决办法
1942
查看次数

我应该如何组织我的ASP.Net主题和常见的CSS文件

我目前正在开展一个项目,一个自称为平面设计师的程序员试图参与ASP.Net主题.CSS非常糟糕,但这完全是另一个问题.

我真正需要帮助的是组织ASP.Net主题和其中的CSS的最佳方法.想象一下,有一个类似于下面的目录结构:

  • 主题
    • 主题A.
      • StyleA.css
      • Common.css
    • 主题B.
      • StyleB.css
      • Common.css
    • 主题C.
      • StyleC.css
      • Common.css

每个主题都有一个共同的样式表.不幸的是,这些样式表的作者设法在Common.css的每个副本中只改变了一些东西.最终,我将评估这些变化是否是必要的,但首先需要进行一些重大清理.现在只是假设这些变化非常小,对于每个主题看起来都是必要的.

我想知道使用主题的最佳实践是什么,同时还需要在您的应用程序中使用一些通用样式.我想在页面加载中最小化AppTurns的数量,但我真的想以一种维护主题易用性的方式将常用样式合并到一个地方.

css asp.net themes

6
推荐指数
1
解决办法
2591
查看次数