我在Unity中注册了几种类型,并给出了类型别名,如下所示:
<typeAliases>
<typeAlias alias="MyType" type="foo.bar.MyType, foo.bar" />
</typeAliases>
Run Code Online (Sandbox Code Playgroud)
是否可以使用别名(而不是类型)从容器中解析这些类型,顺序如下:
var myType = container.ResolveByTypeAlias("MyType")
Run Code Online (Sandbox Code Playgroud)
我看不出有什么方法可以做到这一点,但我想知道我是否错过了什么.
我将文件上传到S3时尝试设置content-MD5值。我可以看到md5哈希字符串,并将其传递到其中,metadata.setContentMD5()但是在文件上传之后,我在Web控制台中看不到该值,也无法通过Java代码检索到它。
我开始认为我可能误解了MD5内容获取/设置方法的目标。它们是否用于让aws服务器验证接收到的文件内容与我发送的内容一致?如果是这种情况,那么我应该在上setContentMD5(my_md5)载时发送一个with值,但是getETag()当我稍后尝试从S3下载该对象时,是否应该将该值与计算出的md5十六进制字符串进行比较?
在尝试设置此md5值时我做错了吗?
String access_key = "myaccesskey";
String secret_key = "mysecretkey";
String bucket_name = "mybucketname";
String destination_key = "md5_test.txt";
String file_path = "C:\\my-text-file.txt";
BasicAWSCredentials creds = new BasicAWSCredentials(access_key, secret_key);
AmazonS3Client client = new AmazonS3Client(creds);
client.setRegion(RegionUtils.getRegion("us-east-1"));
File file = new File(file_path);
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("text/plain");
metadata.setContentLength(file.length());
FileInputStream fis = new FileInputStream(file);
byte[] content_bytes = IOUtils.toByteArray(fis);
String md5 = new String(Base64.encodeBase64(DigestUtils.md5(content_bytes)));
metadata.setContentMD5(md5);
PutObjectRequest req = new PutObjectRequest(bucket_name, destination_key, file).withMetadata(metadata);
PutObjectResult result = client.putObject(req);
GetObjectMetadataRequest …Run Code Online (Sandbox Code Playgroud) 我想使用CodeDOM在一个语句中声明和初始化我的静态字段.我怎样才能做到这一点?
// for example
public static int MyField = 5;
Run Code Online (Sandbox Code Playgroud)
我似乎可以弄清楚如何声明一个静态字段,我可以稍后设置它的值,但我似乎无法获得上述效果.
@lomaxx,Naw,我只想要静电.我不想要const.此值可以更改.我只想一举宣告和初始化的简单性.好像编码世界中的任何东西都很简单.每个类型名称长度超过20个字符,最终构建这些巨大的表达式树.让我的眼睛出错.由于resharper的重新格式化,我今天才活着.
图像Web部件似乎没有我可以设置的href属性.有什么我想念的吗?
我有一个应用程序,多个商店将共享数据.有一个Options表定义了各种程序选项.我有一个varchar列,它定义了值类型,int,bool,Guid,string等.有两个表定义选项值,一个用于系统范围的选项,另一个用于本地选项.基本选项表定义是否可以在系统范围选项之前选择本地选项.Shop和Global选项表基本上是相同的结构,除了ShopOption表具有记录所属商店的ShopId FK.这些表中的每一个都将选项值存储为varchar,尽管该字符串可能表示整数,Guid,bool,或者实际上可能是字符串.我需要显示一个带有本地选项选项卡的表单,一个全局选项选项卡,以及一个用于指定商店是否可以覆盖全局的选项卡.我做得不对的是获得一个选项实体并获得它应该是的类型的值.
例如:
GetOption(SessionTimeout)应该返回一个Option实体,值应该是整数类型.
GetOption(DefaultCustomer)应该返回一个Option实体,值应该是Guid类型.
我正在寻找使用设计模式的答案,并认为工厂模式可能是我想要的,但我只是没有得到它.
我正在尝试自动化第三方 Win32 应用程序,我想在定义的时间间隔捕获特定窗口的图形内容。我处于此的早期阶段,我目前正在尝试通过 C#使用Microsoft UI 自动化API 来完成客户端应用程序和外部应用程序之间的大部分交互。我现在可以让外部应用程序执行我希望它执行的操作,但现在我想从似乎是第三方所有者绘制的控件的特定窗口中捕获图形。我怎样才能做到这一点?我要捕获的窗口是此图像中红色矩形标记的窗口:
我有一个这样的实现,但它依赖于外部应用程序的 UI 位于顶部,这对我来说并不能保证,所以我更愿意找到更通用的东西。
var p = Process.Start("c:\myapp.exe");
var mainForm = AutomationElement.FromHandle(p.MainWindowHandle);
// "workspace" below is the window whose content I want to capture.
var workspace = mainForm.FindFirst(TreeScope.Descendents,
new PropertyCondition(AutomationElement.ClassNameProperty, "AfxFrameOrView70u"));
var rect = (Rect) workspace.GetCurrentPropertyValue(AutomationElement.BoundingRectangleProperty);
using (var bmp = new Bitmap((int)rect.Width, (int)rect.Height))
{
using (var g = Graphics.FromImage(bmp))
{
g.CopyFromScreen((int)rect.Left, (int)rect.Top, 0, 0, new Size((int)rect.Width, (int)rect.Height));
bmp.Save(@"c:\screenshot.png", ImageFormat.Png);
}
}
Run Code Online (Sandbox Code Playgroud)
当自动化应用程序在顶部时,上面的工作足够好,但它只是盲目地复制矩形中的屏幕,所以我的代码受机器上运行的任何东西的支配,并可能覆盖我的应用程序的窗口。
我已经阅读了一些将WM_PRINT消息发送到窗口的建议。几个月前的这个问题/答案似乎很有希望,但是当我使用此代码时,我只得到一个白色矩形,其中没有控件的实际内容。
var prop = (int)workspace.GetCurrentPropertyValue(AutomationElement.NativeWindowHandleProperty);
var …Run Code Online (Sandbox Code Playgroud) 我已经在一些浏览器中成功地使用我的代码与ANTLR javascript目标中的javascript库,但现在我想在服务器上使用Rhino,我遇到了一些麻烦.我有一些简单的java代码引用了Rhino 1.7R2版本的js-14.jar文件.
Context context = Context.enter();
Scriptable scope = context.initStandardObjects();
context.evaluateReader(scope, new FileReader("C:\\antlr3-all.js"), "antlr", 1, null);
Run Code Online (Sandbox Code Playgroud)
这失败EcmaError的消息是:
TypeError: Cannot call property namespace in object [JavaPackage org.antlr].
It is not a function, it is "object". (antlr#259)
Run Code Online (Sandbox Code Playgroud)
它所指的javascript行是:
org.antlr.namespace("org.antlr.runtime.tree");
Run Code Online (Sandbox Code Playgroud)
这org.antlr.namespace在文件的早期声明为函数,所以我不确定该怎么想.我也没有看到"命名空间"是javascript或Rhino中的保留字.
这是第org.antlr.namespace56行的声明:
org.antlr.namespace = function() {
var a=arguments, o=null, i, j, d;
for (i=0; i<a.length; i=i+1) {
d=a[i].split(".");
o=org.antlr.global;
// ANTLR is implied, so it is ignored if it is included
for (j=0; j<d.length; …Run Code Online (Sandbox Code Playgroud) 我有以下javascript:
function downloadFiles(){
var files = [];
files.push('mysite.com/file1.txt');
files.push('mysite.com/file2.txt');
files.push('mysite.com/file3.txt');
for(var ii=0; ii<files.length; ii++){
window.location.href = files[ii];
}
}
Run Code Online (Sandbox Code Playgroud)
问题是这只会下载列表中的最后一个文件,因为前两个文件被最后一个文件覆盖.在继续下一个文件之前,如何等待用户对每个文件的输入?
我有一个网格,并希望使用组合框作为网格单元格编辑器.编辑器组合框的值应该取决于我的数据记录中的多个字段,所以我试图在网格的beforeEdit监听器中设置组合框的值,如下所示:
beforeEdit: function (editor, e, options) {
var field = e.field;
var combo = e.grid.columns[e.colIdx].getEditor(e.record);
var force = e.record.get('forced');
switch (force) {
case 'Y':
combo.setValue("Force active");
break;
case 'N':
combo.setValue("Force inactive");
break;
default:
combo.setValue("Default");
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我的组合框是这样定义的,因此它包含我的beforeEdit处理程序中显示的每个可能的选项:
editor: {
xtype: 'combobox',
forceSelection: true,
editable: false,
triggerAction: 'all',
allowBlank: false,
store: [ 'Default', 'Force active', 'Force inactive' ]
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,虽然在下拉列表中选择了正确的条目,但组合框的文本部分仍为空.

如何说服编辑器组合框还显示组合的文本框部分中的值?
这是一个带有暂存器的sencha小提琴:https://fiddle.sencha.com/#fiddle/9vd
我继承了Windows Server Core计算机,并且希望在该计算机上的docker中运行基于Linux的容器。当前已将其设置为运行基于Windows的容器,因此我想切换为运行linux容器。
当我尝试使用基于Linux的映像时,出现以下错误:
PS C:\Program Files\Docker> docker pull my-linux-based-image
Pulling from my-linux-based-image
image operating system "linux" cannot be used on this platform
Run Code Online (Sandbox Code Playgroud)
在Windows台式机上,我将使用系统托盘中的Docker桌面上下文菜单在linux和Windows容器之间进行切换,但这在Windows Core中不可用。我可以从命令行进行此切换吗?
我看到了可以使用的建议,DockerCli.exe但即使确保已安装最新的docker软件包,也没有安装此建议。我需要单独的与cli相关的软件包吗?
这是Windows Core计算机上docker安装的版本信息:
PS C:\Program Files\Docker> docker version
Client: Docker Engine - Enterprise
Version: 18.09.8
API version: 1.39
Go version: go1.10.8
Git commit: 90e30bdf98
Built: 07/16/2019 17:13:22
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Enterprise
Engine:
Version: 18.09.8
API version: 1.39 (minimum version 1.24)
Go version: go1.10.8
Git commit: 90e30bdf98
Built: 07/16/2019 …Run Code Online (Sandbox Code Playgroud)