小编Ste*_*ris的帖子

查看是否在OnMouseMove事件中按住鼠标左键

如何在控件中检测鼠标左键是否被按下时如何检测OnMouseMove

c# onmousemove winforms

6
推荐指数
1
解决办法
2万
查看次数

xsd:具有可选属性的唯一

我有这个Xml文件:

<objects>
  <object name="ID1" />
  <object name="ID2" />
  <object name="ID2" color="green" />
  <object name="ID3" color="green" />
<objects>
Run Code Online (Sandbox Code Playgroud)

我想验证这一点对一个XSD架构,使之间的组合name,并color在文档中是唯一的.

问题是,如果我使用:

<xs:unique name="UniqueObjectNameColor">
  <xs:selector xpath="./object" />
  <xs:field xpath="@name" />
  <xs:field xpath="@color" />
</xs:unique>
Run Code Online (Sandbox Code Playgroud)

...规则将忽略object没有可选color属性的元素.以下验证正确,但不应该.

  <object name="ID2" />
  <object name="ID2" />
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何指定一个强制执行唯一namecolor组合的规则,当color元素中没有该属性时object,它会检查name

xml xsd unique

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

为什么我不能将属性转换为嵌套元素?

我正在从'App.config'中读取设置.我只是想出了如何使用ConfigurationSection,ConfigurationElementCollectionConfigurationelElement.

App.config中:

<?xml version="1.0" encoding="utf-8" ?>
<configuration> 
    <configSections>
        <sectionGroup name="notificationSettingsGroup">
                <section name="mailTemplates" type="Project.Lib.Configuration.MailTemplateSection, Project.Lib"
                    allowDefinition="Everywhere" allowExeDefinition="MachineToApplication" requirePermission="false"/>
        </sectionGroup>         
    </configSections>
    <notificationSettingsGroup>
        <mailTemplates>
            <items>
                <mailTemplate name="actionChain" subject="Subject bla-bla">
                    <body>Body bla-bla</body>
                </mailTemplate>                 
            </items>
        </mailTemplates>
    </notificationSettingsGroup>
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>  
</configuration>
Run Code Online (Sandbox Code Playgroud)

我的C#代码:

public class MailTemplateSection : ConfigurationSection
{
    [ConfigurationProperty("items", IsDefaultCollection = false)]
    public MailTemplateCollection MailTemplates
    {
        get { return (MailTemplateCollection)this["items"]; }
        set { this["items"] = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)
[ConfigurationCollection(typeof(MailTemplateElement), AddItemName = "mailTemplate",
    CollectionType = ConfigurationElementCollectionType.AddRemoveClearMap)]
public …
Run Code Online (Sandbox Code Playgroud)

.net c# xml app-config

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

面向多平台时测试方法名称中的空格

我真的很喜欢 Kotlin 为方法名称添加空格的能力,这是一种有据可查的方法,通常用于使测试名称更具可读性

在测试中(并且仅在测试中),可以使用带有用反引号括起来的空格的方法名称。(请注意,Android 运行时目前不支持此类方法名称。)...

class MyTestCase {
    @Test fun `ensure everything works`() { ... }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我在我正在开发的一个新库中大力采用它们,针对 JVM。我的测试在 IntelliJ 中显示得很漂亮,一切都很好。

现在,我正在尝试将此库移植到多平台(同时针对 JVM 和 JavaScript)。当我添加带有空格的测试时,当 Gradlebuild运行时,我收到以下 Kotlin 编译器错误compileTestKotlin2Js

名称包含不能出现在 JavaScript 标识符中的非法字符

我应该从我的测试方法中删除所有空格,还是有另一种方法可以两全其美?

另外,关于“Android运行时目前不支持此类方法名称”的限制,这是一个真正的限制吗?只要我可以在 JVM 上运行我的测试,我仍然可以使用针对 Android 运行时的测试库(在任何方法中都不包含空格),对吗?

kotlin kotlin-multiplatform

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

如何使用 Gradle 和 IntelliJ 在 Kotlin 多平台项目中配置 JUnit 5?

JUnit 4(工作)

IntelliJ IDEA 2018.2.3(社区版)中的 Kotlin 多平台模板依赖于 JUnit 4.12 中build.gradle的项目的 JVM 部分:

plugins {
    id 'kotlin-platform-jvm' version '1.2.61'
}
repositories {
    mavenCentral()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    expectedBy project(":TestMulti-common")
    testCompile "junit:junit:4.12"
    testCompile "org.jetbrains.kotlin:kotlin-test"
    testCompile "org.jetbrains.kotlin:kotlin-test-junit"
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
sourceCompatibility = "1.8"
Run Code Online (Sandbox Code Playgroud)

使用这个模板,我可以将测试添加到项目的公共部分和 测试被 IntelliJ 识别:“运行”图标显示在源文件的边缘,并且测试可以通过上下文菜单运行。

JUnit 5(IntelliJ 中未正确识别测试)

如何使用 JUnit 5 实现类似的设置?

值得注意的是,我使用的摇篮4.10(一些老的例子使用junit-platform-gradle-plugin,因为摇篮4.6已被弃用)。关于如何设置的文档已经过时且稀缺:

intellij-idea gradle kotlin junit5 kotlin-multiplatform

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

检查构造函数是否调用另一个构造函数

在反射过程中,是否可以在C#中检查一个构造函数是否调用另一个?

class Test
{
    public Test() : this( false ) { }
    public Test( bool inner ) { }    
}
Run Code Online (Sandbox Code Playgroud)

我想确定每个ConstructorInfo是否在调用链的末尾.

c# reflection constructor cil constructor-chaining

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

本地消息传递到 Windows 上的 .NET 应用程序

我尽我所能遵循本机消息传递文档,但似乎无法让我的本机 .NET 应用程序甚至开始在 Windows 上运行。在寻找其他信息时,我注意到有些事情没有记录和不清楚。

首先,文档没有提到添加“nativeMessaging”权限的要求。改变这一点后,我又走得更远了;Chrome 现在实际上在气球弹出窗口中提到了“添加了新的后台应用程序”。

但是,无论我尝试了哪些操作,以下代码都会立即断开连接。

var port = chrome.runtime.connectNative( ... );
port.onDisconnect.addListener(
    function()
    {
        console.log( "Disconnected" );
    } );
Run Code Online (Sandbox Code Playgroud)

基于我调试这个东西的尝试,我有几个问题:

  1. 在 Windows 上,Chrome 何时尝试从注册表中的 NativeMessagingHosts 加载清单?换句话说,我应该在更改值时重新启动 Chrome,还是在"chrome://extensions/" 中重新加载扩展程序就足够了?
  2. 注册表中的绝对路径,应该怎么格式化?例如,我看到人们只说“\\\\”斜杠作为路径分隔符起作用。它需要周围的报价吗?
  3. 有什么方法可以获取有关问题的更多信息吗?出于测试目的,我重命名了注册表项以查看是否会出现不同的错误(假设由于无法加载它会通知我该错误)。相反,“onDisconnect”似乎仍然被调用。
  4. 与注册表中的路径类似,注册表值指向的原生应用清单文件中指向原生应用的相对路径应该如何格式化?(文档中有一个例子,但只是为了确定什么有效,什么无效......)

现在似乎有太多变量供我调试,并且不要立即看到我如何验证我的注册表值是否至少设置正确。

.net windows google-chrome-extension chrome-native-messaging

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

使用 proguard 保留特定的注释

我的项目中有两种类型的注释:Annotation1Annotation2。两者都是运行时注释。所以,我的问题是如何保留Annotation1和剥离Annotation2

例子:

class Test {
    @Annotation1
    @Annotation2
    String name;
}
Run Code Online (Sandbox Code Playgroud)

我想Annotation2从所有领域中消失并被Annotation1保留在任何地方。

我找不到这是否可能。我只知道如何使用以下方法保留所有注释:

-keepattributes *Annotation*
Run Code Online (Sandbox Code Playgroud)

这可能吗?如果没有,为什么?

java android annotations proguard

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

运行gradle测试时找不到嵌套Kotlin类中的JUnit测试

当我在Kotlin的嵌套类中指定测试时,如下所示...

import org.junit.jupiter.api.*

class ParentTest
{
    @Nested
    class NestedTest
    {
        @Test
        fun NotFoundTest() {}
    }

    @Test
    fun FoundTest() {}
}
Run Code Online (Sandbox Code Playgroud)

...使用gradle运行测试时,JUnit无法识别它。仅FoundTest找到并运行。

我正在使用JUnit 5.1和Kotlin 1.2.30和Gradle 4.6。

gradle kotlin junit5

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

如何在 Kotlin 中检查类型是否是枚举?

在运行时,我试图验证一个特定的KClass<out Any>是否是枚举类型。

这样做的最佳方法是什么?这是否可以在不依赖特定运行时(例如,JVM 或 JS)的情况下完成?

fun isEnum( type: KClass<out Any> ): Boolean
{
    ... ?
}
Run Code Online (Sandbox Code Playgroud)

reflection kotlin

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