小编Seb*_*n K的帖子

是否可以在EA类图中使用球和套接字表示法?

球和插槽符号是合法的UML 2.0,但我找不到强制EA在图上绘制它的方法.它拒绝允许套接字和球之间的依赖.有没有办法实现它,如下图所示(小ms画魔术):

在此输入图像描述

另外,一个附带问题,你可以让球或插座出现在元素的另一侧吗?

uml enterprise-architect

5
推荐指数
1
解决办法
3130
查看次数

ASP.NET MVC DDD应用程序中的组合根

我正在阅读Mark Seemann目前的".NET中的依赖注入".我想知道组成DDD ASP.NET MVC应用程序的最佳方法是什么.

在简化的场景中,一般的经验法则是将域模型作为应用程序的核心,并且不会对数据层或表示有任何依赖性.它将暴露Presentation将使用的某些接口(因此依赖)和数据层将实现(因此依赖).所以这一切都很好而且清晰.

DDD app中的依赖关系

但是,现在,当我们撰写应用程序时.对于ASP.NET MVC应用程序,我们将在global.asax(http://blog.ploeh.dk/2011/07/28/CompositionRoot)中进行.我们的组合根将需要依赖所有层,因为它需要注册所有适用的类型.

DDD应用程序中的组合根

这使得所有依赖项看起来都很混乱,现在Presentation层有一个对数据访问层的项目引用(在VS术语中).开发人员很容易犯错并直接使用数据形式的数据访问层,这将有效地耦合这些层.

有没有一个干净的方法来解决这个难题?将Composition Root放在表示层之外几乎是很好的,但在MVC中是不可能的.

UPDATE

在提出这个问题后,我找到了一个相关的问题: DAL - > BLL < - GUI +组合根.如何设置DI绑定? 它有一些有意义的解决方案.接受的解决方案几乎是完美的,但我希望组合根在表示层之外,并且参考表示层而不是其他方式.

其中一个原因是,对我来说概念更清晰 - 构图应该在最顶层.另一个原因是,在我的情况下,表示层中已经有许多DI对象(主要是查看模型映射器的域对象),我想将它们组合在一个位置.

这个帖子给了我一些想法,我认为我想做的事情可能是可能的.

asp.net-mvc domain-driven-design dependency-injection asp.net-mvc-3

5
推荐指数
1
解决办法
2179
查看次数

使用“Select TOP (@variable) * From”时可以指定“unlimited”吗?

在 SQL Server 2005 或更高版本中,您可以使用以下语法返回可变行数:

Declare @Limit Int
Set @Limit=5
Select Top(@Limit) * From TableName
Run Code Online (Sandbox Code Playgroud)

是否有一些神奇的值,您可以使用它来返回所有行?(想到这里的参数化存储过程)。设置 limit as0不会返回任何行,使用负值会产生运行时错误。

我很确定这是不可能的,但我还没有找到明确的答案。在没有If/Else阻塞的情况下完成这项工作并复制相当复杂的查询会很好。

sql sql-server

5
推荐指数
1
解决办法
3292
查看次数

有没有办法强制打印!/ println!使用Windows新行(CR LF)

我在Windows 10上使用Rust 1.9.当使用一些代码并比较从标准输出中捕获的结果时,我注意到输出使用Linux行结束0x0A(10,LF)而不是windows 0x0D 0x0A(13 10,CR LF) .我试过以下:

println!("{} or {}  = {}", a, b, a | b);

print!("{} or {}  = {}\n", a, b, a | b);
Run Code Online (Sandbox Code Playgroud)

有没有办法强制Windows行结束?

rust

5
推荐指数
1
解决办法
308
查看次数

在MVC中使用DI时的大规模控制器构造函数参数列表

我正在使用ASP.NET MVC3解决方案,该解决方案使用依赖注入与autofac.我们的控制器是由autofac正确创建的,所有必需的对象都被正确传入.这些对象通常包括将域对象转换为MVC(视图)模型的服务,存储库和映射器.所以控制器构造函数看起来有点像:

public abcController(
        ILogger logger,
        IabcRepository abcRepository,
        IabcService abcService,
        IMapper<AbcDomain, AbcViewModel> abcMapper,
        ...
        )
Run Code Online (Sandbox Code Playgroud)

不幸的是,随着时间的推移,这些构造函数参数列表往往会很快增长.我们的一些控制器现在需要60个或更多参数.

我们在这里创造了一些反模式吗?

编辑

我应该提到我们试图遵循薄的控制器模式.此外,大多数参数都是映射器 - 大约66%.控制方法通常非常简单,并遵循以下模式:

  • 基于参数调用适当的服务或存储库
  • 使用mapper将结果转换为适当的视图模型
  • 传递视图模型进行查看

或者这种模式:

  • 从后期行动中接收模型
  • 使用mapper将其转换为适当的域对象
  • 使用域对象调用适当的服务或存储库

c# dependency-injection autofac asp.net-mvc-3

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

Castle DynamicProxy - 'classToProxy'必须是一个类

我可能遗漏了一些非常简单的东西.

我只是想写一个非常简约的DynamicProxy使用示例 - 我基本上想拦截调用并显示方法名称和参数值.我的代码如下:

public class FirstKindInterceptor : IInterceptor
{
    public void Intercept(IInvocation invocation)
    {
        Console.WriteLine("First kind interceptor before {0} call with parameter {1} ", invocation.Method.Name, invocation.Arguments[0]);
        invocation.Proceed();
        Console.WriteLine("First kind interceptor after the call");
    }
}

public interface IFancyService
{
    string GetResponse(string request);
}

public class FancyService : IFancyService
{
    public string GetResponse(string request)
    {
        return "Did you just say '" + request + "'?";
    }
}

class Program
{
    static void Main(string[] args)
    {
        var service = new FancyService(); …
Run Code Online (Sandbox Code Playgroud)

.net c# castle-dynamicproxy

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

如何仅将css应用于顶级元素

在我的HTML中,我在单独的部分中有一些页脚元素,然后是页面的一个全局页脚元素.我想只使全局页脚显示在视口的底部.

如果我这样做,它将影响所有的页脚:

footer {
    position: fixed;
    bottom: 0px;    
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做,它按预期工作,但body语法看起来很难:

body > footer {
    position: fixed;
    bottom: 0px;    
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来指定顶级页脚?

css css-selectors

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

DllImport装饰名称问题 - 无法找到入口点

我有一个奇怪的问题我有C++ DLL,我使用DLL导入在C#库中导入.如果我指定入口点,一切都按预期工作,这是示例:

internal static class UnsafeMethods
{
    [DllImport("GoodSchool.dll", EntryPoint = @"?AddNum@@YAHHH@Z")]
    public static extern int AddNum(int num1, int num2);
}

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(UnsafeMethods.AddNum(4,5));
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我像这里一样使用simplfied导入:

[DllImport("GoodSchool.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int AddNum(int num1, int num2);
Run Code Online (Sandbox Code Playgroud)

我得到熟悉的错误消息:

未处理的异常:System.EntryPointNotFoundException:无法在DLL'GoodSchool.dll'中找到名为'AddNum'的入口点

我使用依赖验证方法是否正确暴露,我解码符号验证参数和命名约定 - 一切似乎都很好.

C++中的函数签名非常简单:

  __declspec(dllexport) int AddNum(int num1, int num2); 
Run Code Online (Sandbox Code Playgroud)

有关如何在C#中调用此方法而不提供装饰名称作为EntryPoint的任何建议?我做错了什么?我不想使用"C"导出,因为我的理解是装饰函数名称与DllImport一起使用时非常好.

.net c# c++ dllimport

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

令人困惑的伪元素语法:first-child和:first-letter

当我遇到一个奇怪的情况时,我正在玩CSS选择器.

如果我使用:first-child伪元素我需要在它前面加上一个空间让它工作,如果我不这样做就行不通.但是:第一个字母的伪元素情况是反向的,只有当它没有被空格前置时它才会起作用.

我觉得它很不一致,因为它们都是伪元素.最初我认为它可能只是IE10问题,但我检查了Chrome和Firefox,结果相同.有什么我想念的吗?这种行为有原因吗?

这里是重现问题的紧凑型样本:

<!DOCTYPE html>
<html>
<head>
<style>
    * { color: red; }
    #article1 :first-child { color: deepskyblue; }
    article :last-child { color: darkmagenta; }
    #firstLetter:first-letter { color: darkslateblue; }
    #firstLine:first-line { color: darkslateblue; }
</style>
</head>
<body>
    <article id="article1">
        <div>E :first-child </div>
        <div>E :last-child </div>
    </article>                        
    <div id="firstLetter">:first-letter</div>
    <div id="firstLine">:first-line</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

html css css-selectors pseudo-element

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