小编Gen*_*ent的帖子

静态检查框架约定

是否有一个产品/项目允许您定义惯例,例如MVC项目静态检查命名约定,如Controller附加在继承自控制器的类的末尾,和/或在装饰方法时强制执行某个方法签名一个属性.

我基本上正在寻找一种方法来为我们团队中的新开发人员设置一些护栏,我们有一套明确的约定,其中一些用于通过反射动态连接.看到这种反射线会因为不兼容的签名而失败,这对我们的加速过程来说是一个巨大的好处.

主要特点需要:

  • 静态/编译时检查损坏的规则
  • 能够定位用特定属性修饰的方法(通过RegEx或向导)
  • 基于不同类型项目的不同规则集.(示例:MVC应用程序的一组约定,Web窗体应用程序的不同集合,以及后缀为.BLL的类库的不同集合)

任何输入建议都表示赞赏,但我要求您只有在知道这些功能受支持时才会回复.

c# vb.net visual-studio-2010 convention-over-configur visual-studio

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

NLogConfigurationException - 从'System.String'到'System.Uri'的无效转换

现在我已经从1.0 - > 2.0更新了Nlog.

当调用NLog.Config.XmlLoggingConfiguration.Initialize时,会发生以下异常:
"在WebService Target [Target_AuditLog_WebService_Global]上设置属性'Url'时 出现 错误
,其内部异常为:
"从'System.String'到'System.Uri'的无效转换.

目标看起来像这样:

<target name="Target_AuditLog_WebService_Global" xsi:type="WebService" namespace="http://ourLoggingServer.corp/" protocol="Soap12" methodName="AddLog" url="http://ourLoggingServer.corp/Logger.asmx">
  <parameter /> <!-- Several params, none of type system.uri -->
</target>
Run Code Online (Sandbox Code Playgroud)

我发现这似乎他们认为它是固定的:http: //nlog.codeplex.com/workitem/5352

asp.net nlog nlog-configuration

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

NuGet Pack -Build似乎不理解c#6.0

我刚刚完成了我的一个项目并使用了一些新的c#6功能,例如handler?.Invoke(null, e)在Visual Studio中构建的null传播运算符.但是,当我运行我的脚本发布NuGet包时,我得到编译错误说:

EventName.cs(14,66): error CS1056: Unexpected character '$'
EventName.cs(69,68): error CS1519: Invalid token '=' in class, struct, or interface member declaration
EventName.cs(69,74): error CS1520: Method must have a return type
Run Code Online (Sandbox Code Playgroud)

看起来NuGet正在使用旧版本的编译器,但我想知道是否有人知道可以设置解决问题的解决方法或配置.

c# nuget c#-6.0

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

Linq Where Contains ...保持默认顺序

我有一个ID号的集合,我希望返回一些对象,我是通过使用linq语句来实现的,其中使用了包含语句的地方:

var recentCats = (from i in EntityCache.Default.GetAll<Categories>()
                          where WebProfile.Current.RecentlyCreatedCategories.Contains(i.Id)
                          && BoundCategory.ParentItemClass.Id.Equals(i.ParentItemClass.Id)
                          select new CategoryInfo()
                          {
                              Category = i,
                              ClassId = i.ParentItemClass.Id,
                              ClassImage = NamedResourceManager.GetResourceBinary(i.ParentItemClass.NameResourceId)
                          });
Run Code Online (Sandbox Code Playgroud)

这完全正常,除了我想保持返回集合中的项目顺序与它们在列表中的顺序相同.例如,如果我有一个ID列表:14,603,388,我想要返回的对象的顺序不同,而不是缓存返回的顺序.有没有办法在实体框架中执行此操作,或以任何方式执行此操作而不涉及我编写foreach循环?

谢谢

c# linq entity-framework

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

MSBuild输出缺少由Typescript编译的javascript文件

我们在CI服务器上使用MSBuild来编译我们的WebApp,但是构建忽略了TypeScript从构建输出构建的JavaScript文件.

我希望输出包含JavaScript而不是Typescript,但是在预期位置的输出中都没有.

如何在我的解决方案中包含JavaScript文件而不必将它们全部包含在内?TypeScript团队似乎认为这很糟糕,但我宁愿没有解决方案中所有文件的重复.

msbuild typescript

4
推荐指数
2
解决办法
3795
查看次数

使用Mongo C#Driver序列化不可变值类型

我有许多不可变的值类型类,例如EmailAddress,它确保任何非null实例有效.我希望"123@abc.com"在使用MongoDB C#Driver持久化时,将这些类型的对象的序列化控制为标准字符串表示().

我尝试过实现IBsonSerilizer它,但它只允许根级别的对象或数组.我能够用Json.NET实现适当的Json Serilization,我应该采用不同的方法吗?

c# serialization mongodb bson mongodb-.net-driver

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