我设计了一个使用存储库模式的应用程序,然后设计了一个单独的服务层,例如:
public class RegistrationService: IRegistrationService
{
public void Register(User user)
{
IRepository<User> userRepository = new UserRepository();
// add user, etc
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我在Register方法中实例化我的存储库.现在,因为我想编写一些单元测试,我真的无法实现它并用虚假的存储库替换它可以吗?
我不想将存储库添加为类变量(并通过构造函数设置),因为我认为这会使我的代码"臭"(并非所有方法都需要所有存储库,而且我不需要调用层来了解存储库等).
建议?
我有一个服务,它有一个触发某个控制器方法时调用的方法.
我的服务返回一个自定义结果对象PlacementResult,我想在其中将可能发生的错误(验证)传递回控制器方法.
PlacementResult应该有一个ModelState或ModelStateDictionary来将错误传回控制器(最后查看)吗?我怎么把它串在一起?
最后,如何将ModelState/ModelStateDictionary(无论你告诉我应该选择哪个)返回到视图中(突出显示相应的文本框,显示错误消息等)?
谢谢 !
我想知道如何阻止来自我的ASP.NET MVC部分视图/ ASCX用户控件的那些恼人的编译器警告"未定义类或CssClass值".CSS已正确定义,但CSS文件的引用显然仅在母版页上.我的部分视图包含很多关于div等的CSS类引用,所以我得到了大量的警告,我不应该看到.
我怎么解决这个问题?
谢谢 !
我有以下情况:
一个项目MyCompany.MyProject.Domain包含我的域模型,以及部分类(如Contact).
我希望'扩展'(通过部分类,而不是扩展方法)我的Contact类具有一个属性Slug,它将为我提供一个简单的URL友好文本表示的名字和姓氏.
我有一个字符串扩展方法ToSlug()在我Utility的项目MyCompany.MyProject.Utilities这不正是我想要2).
问题:我的Utility项目已经引用了我的Domain项目,这意味着我无法让Domain项目看到Utility项目的ToSlug()方法而不会导致循环引用.
我并不热衷于创建另一个项目来解决这个问题,我真的希望保持Slug逻辑共享.
我怎么解决这个问题?
我创建了一个新的动作过滤器(属性,类似于[Authorize]),它根据会话值授权访问控制器动作.但是,我基本上用该属性装饰我的所有控制器动作(除了极少数).
所以,我认为除了在将[ExemptFromAuthorize]属性附加到控制器动作的情况下,总是执行Action Filter会更好吗?(也许通过继承我自己的Controller类?)
我怎样才能做到这一点?
是否可以访问IQueryable后面的DataContext对象?
如果是这样,怎么样?
是否有任何C#方法与Convert.ToBase64String类似,但除了字母数字输出外不生成任何内容?
谢谢!
在C#中,是否可以在类上创建扩展方法但限制类中的可见性/可访问性?(例如,M类的扩展方法A只能在Z类中访问)
例:
class A
{
String foo = "";
String bar = foo.MakeMillionaire("arg");
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中我想要的扩展方法"MakeMillionaire"扩展String类仅是A类.我可以通过A类中定义的静态类扩展方法做到这一点不知何故内可见和可访问?
编辑:尝试常规嵌套类会产生"错误:必须在顶级静态类中定义扩展方法".
我可以一次从元素中的所有XYZ元素中删除特定的CSS类吗?
示例:active从我的搜索中的所有<a> 锚点中删除CSS类. div
如果是这样,怎么样?
我有多个大对象,每个对象有大约60个字符串.我必须修剪所有这些字符串,我想这样做而不必去this.mystring = this.mystring.Trim().相反,我正在寻找一种方法来自动让每个对象发现自己的字符串,然后执行操作.
我对反思有点了解,但还不够,但我认为这是可能的吗?
另外,我不确定这是否重要,但是一些字符串属性是只读的(只有一个getter),因此必须跳过这些属性.
救命?
c# ×8
asp.net-mvc ×4
.net ×3
asp.net ×2
alphanumeric ×1
base64 ×1
datacontext ×1
encoding ×1
iqueryable ×1
javascript ×1
jquery ×1
linq ×1
reflection ×1
trim ×1
views ×1