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

另外,一个附带问题,你可以让球或插座出现在元素的另一侧吗?
我正在阅读Mark Seemann目前的".NET中的依赖注入".我想知道组成DDD ASP.NET MVC应用程序的最佳方法是什么.
在简化的场景中,一般的经验法则是将域模型作为应用程序的核心,并且不会对数据层或表示有任何依赖性.它将暴露Presentation将使用的某些接口(因此依赖)和数据层将实现(因此依赖).所以这一切都很好而且清晰.

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

这使得所有依赖项看起来都很混乱,现在Presentation层有一个对数据访问层的项目引用(在VS术语中).开发人员很容易犯错并直接使用数据形式的数据访问层,这将有效地耦合这些层.
有没有一个干净的方法来解决这个难题?将Composition Root放在表示层之外几乎是很好的,但在MVC中是不可能的.
UPDATE
在提出这个问题后,我找到了一个相关的问题: DAL - > BLL < - GUI +组合根.如何设置DI绑定? 它有一些有意义的解决方案.接受的解决方案几乎是完美的,但我希望组合根在表示层之外,并且参考表示层而不是其他方式.
其中一个原因是,对我来说概念更清晰 - 构图应该在最顶层.另一个原因是,在我的情况下,表示层中已经有许多DI对象(主要是查看模型映射器的域对象),我想将它们组合在一个位置.
这个帖子给了我一些想法,我认为我想做的事情可能是可能的.
asp.net-mvc domain-driven-design dependency-injection asp.net-mvc-3
在 SQL Server 2005 或更高版本中,您可以使用以下语法返回可变行数:
Declare @Limit Int
Set @Limit=5
Select Top(@Limit) * From TableName
Run Code Online (Sandbox Code Playgroud)
是否有一些神奇的值,您可以使用它来返回所有行?(想到这里的参数化存储过程)。设置 limit as0不会返回任何行,使用负值会产生运行时错误。
我很确定这是不可能的,但我还没有找到明确的答案。在没有If/Else阻塞的情况下完成这项工作并复制相当复杂的查询会很好。
我在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行结束?
我正在使用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%.控制方法通常非常简单,并遵循以下模式:
或者这种模式:
我可能遗漏了一些非常简单的东西.
我只是想写一个非常简约的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) 在我的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)
有没有更好的方法来指定顶级页脚?
我有一个奇怪的问题我有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一起使用时非常好.
当我遇到一个奇怪的情况时,我正在玩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)