interface IMyInterace
{
void Open();
object Read();
void Close();
}
class MyImplementation : IMyInterface
{
public void Open() { /* instantiates disposible class */ }
//...
public void Close() { /* calls .Dispose(); */ }
}
Run Code Online (Sandbox Code Playgroud)
有没有一种很好的方法来处理这种情况,以确保调用类中的可处理实例?(除了文档之外,调用者没有信号他们必须调用'Close'.)IMyInterface的实现不一定封装IDisposible实例,并且在整个应用程序的生命周期内重复关闭和重新打开.
我在想这样做:
IMyInterface的用户不知道他们正在使用什么实现,所以我不确定MyImplementation可处置的价值有多少,而且并非所有实现都会封装IDisposibles.
我最近发现TempData在处理控制器中的逻辑后将消息传递回视图.但是当我尝试传递带有消息的html时,它呈现的是实际的标签,而不是在页面呈现时将它们解释为html.
有没有办法解决这个问题,还是我的接近有缺陷?
TempData["Message"] = "<span style='color:red;'>There was a problem moving the files.</span>";
Run Code Online (Sandbox Code Playgroud)
以下是浏览器中显示的内容:
<span style='color:red;'>There was a problem moving the files.</span>
Run Code Online (Sandbox Code Playgroud)
谢谢!
我需要告诉打印机驱动程序发出换页.
我使用以下方法直接打印到打印机:
一组API调用.
很多灵感来自KB138594 - HOWTO:使用Win32 API将原始数据发送到打印机.知识库文章中需要注意的一点是,它们(以及我复制的代码)以RAW模式启动文档:
// Fill in the structure with info about this "document."
docInfo.pDocName = "My Document";
docInfo.pOutputFile = NULL;
docInfo.pDatatype = "RAW";
StartDocPrinter(hPrinter, 1, docInfo);
Run Code Online (Sandbox Code Playgroud)
注意:
RAW模式(与模式相反TEXT)意味着我们向打印机驱动程序发出原始字节.我们承诺用它理解的语言进行交谈.
然后我们可以WritePrinter用来写我们想要的一切:
WritePrinter(hPrinter, "Hello, world!"); //note, extra parameters removed for clarity
WritePrinter(hPrinter, 0x0c); //form-feed
Run Code Online (Sandbox Code Playgroud)
这里的问题是0x0c换页字符.因为我们已经在RAW模式下打开了打印机,我们承诺我们将发送它可以处理的打印机驱动程序字节.大多数打印机的驱动程序0x0C意味着您要发布换页.
问题是其他打印机(PDF打印机,Microsoft XPS打印机)希望RAW打印作业使用他们自己的打印机语言.如果您使用上述内容打印到XPS或PDF打印机:没有任何反应(即没有保存对话框,没有打印).
首先,在任何人尖叫之前,我很难总结一个简单的标题.另一个标题可能是"域模型和MVC模型之间有什么区别?" 或"什么是模特?"
从概念上讲,我理解一个Model是视图和控制器使用的数据.除此之外,关于构成模型的内容似乎存在很多不同的意见.什么是域模型,应用模型,视图模型,服务模型等.
例如,在我最近提出的关于存储库模式的问题中,我被告知空白存储库是模型的一部分.但是,我已经阅读了其他意见,即模型应该从持久性模型和业务逻辑层中分离出来.毕竟,是不是存储库模式应该将具体的持久性方法与模型分离?其他人说Domain模型和MVC模型之间存在差异.
我们举一个简单的例子.MVC默认项目中包含的AccountController.我已经阅读了一些意见,其中包含的帐户代码设计不佳,违反了SRP等等.如果要为MVC应用程序设计一个"适当的"成员模型,那会是什么?
您将如何从模型中分离ASP.NET服务(成员资格提供程序,角色提供程序等)?或者你会吗?
我看待它的方式,模型应该是"纯粹的",也许是验证逻辑..但应该与业务规则分开(除了验证).例如,假设您有一条业务规则,说明在创建新帐户时必须通过电子邮件发送某人.在我看来,这并不属于模型.那它属于哪里?
有人关心这个问题吗?
model-view-controller asp.net-mvc design-patterns business-logic-layer
我想知道如何在Python中有效地添加稀疏矩阵.
我有一个程序将一个大任务分解为子任务并将它们分配到多个CPU.每个子任务产生一个结果(scipy稀疏矩阵格式为:)lil_matrix.
稀疏矩阵维度是:100000x500000,这是非常巨大的,所以我真的需要最有效的方法将所有生成的稀疏矩阵求和成一个稀疏矩阵,使用一些C编译方法或其他东西.
可能重复:
计算两个Java日期实例之间的差异
嗨,我有两个java.util.date类型的对象.
Date StartDate; 日期EndDate;
两个对象都有一个日期和指定的时间.我需要找到它们之间的间隔,以小时,分钟和秒为单位.我可以在某些方面做到,但我认为我的技术并不是最好的.
那么你将用什么技术在Java中进行这项操作
也许是一个相当不寻常的情况,但我想指定一个私有SSH密钥,以便在从本地计算机执行shell(git)命令时使用.
基本上是这样的:
git clone git@github.com:TheUser/TheProject.git -key "/home/christoffer/ssh_keys/theuser"
Run Code Online (Sandbox Code Playgroud)
甚至更好(在Ruby中):
with_key("/home/christoffer/ssh_keys/theuser") do
sh("git clone git@github.com:TheUser/TheProject.git")
end
Run Code Online (Sandbox Code Playgroud)
我见过使用Net :: SSH连接到远程服务器的示例,它使用指定的私钥,但这是一个本地命令.可能吗?
我最近添加了这条线
(set-default-font "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1")
Run Code Online (Sandbox Code Playgroud)
到我的.emacs文件.之后find-file-other-window总是打开一个新窗口而不是利用现有的窗口.为什么会这样呢!?我该如何解决?
我不明白所有这些font-config魔法是如何工作的,所以如果真的很明显我很抱歉.
编辑:我有一个非常大的分辨率,我的字体大小已经显着下降.是否find-file-other-window考虑了可用的字符空间?也许它正在决定,只要打开窗户就可以买得太多了.
Maven dependency:analyze抱怨我项目中的依赖项.它如何确定哪些未使用以及哪些未申报?我该怎么办?
例:
$ mvn dependency:analyze
...
[WARNING] Used undeclared dependencies found:
[WARNING] org.slf4j:slf4j-api:jar:1.5.0:provided
[WARNING] commons-logging:commons-logging:jar:1.1.1:compile
[WARNING] commons-dbutils:commons-dbutils:jar:1.1-osgi:provided
[WARNING] org.codehaus.jackson:jackson-core-asl:jar:1.6.1:compile
...
[WARNING] Unused declared dependencies found:
[WARNING] commons-cli:commons-cli:jar:1.0:compile
[WARNING] org.mortbay.jetty:servlet-api:jar:2.5-20081211:test
[WARNING] org.apache.httpcomponents:httpclient:jar:4.0-alpha4:compile
[WARNING] commons-collections:commons-collections:jar:3.2:provided
[WARNING] javax.mail:mail:jar:1.4:provided
Run Code Online (Sandbox Code Playgroud)
注意:我的运行时容器中使用了很多这些依赖项,并且我将它们声明为提供它们以避免在类路径上使用不同版本两次使用相同的库.
我正在使用numpy.genfromtxt读取文件,该文件引入了字符串和数值的列.我需要做的一件事是检测输入的长度.如果每个数组中读取了多个值,则这一切都很好.
但是......如果结果数组中只有一个元素,则逻辑失败.我可以在这里重新创建一个例子:
import numpy as np
a = np.array(2.3)
Run Code Online (Sandbox Code Playgroud)
len(a)返回错误说:
TypeError: len() of unsized object
Run Code Online (Sandbox Code Playgroud)
但是,如果a有2个或更多元素,则len()的行为与预期的一样.
import numpy as np
a = np.array([2.3,3.6])
Run Code Online (Sandbox Code Playgroud)
len(a)返回2
我关注的是,如果我使用一些奇怪的异常处理,我无法区分为空和长度= 1.
编辑:@noskio建议设置a = np.array([2.3]).问题是,a的实际起源是使用numpy.genfromtxt.代码如下所示:
import numpy as np
indata = np.genfromtxt(some_filename, names=True,dtype=None)
a = indata['one_col_headername']
Run Code Online (Sandbox Code Playgroud)
因此,如果indata只是文件中的一行,则a是0-d数组.