有没有办法在SignalR中做这样的事情:
public void CallClientMethod(string methodName, MyObject data)
{
var ctx = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
ctx.Clients.All.methodName(data);
// or alternatively
ctx.Clients.All.CallClientMethod(methodName, data);
}
Run Code Online (Sandbox Code Playgroud)
上面的例子说明了intent,而不是实际的机制 - 我想确定在运行时调用的方法,而不是编译时.
我在它自己的程序集中有一个手写的WCF代理,它非常简单:
public class MyServiceClient : ClientBase<IMyService>, IMyService
{
public MyServiceClient()
{
}
public MyServiceClient(string endpointConfigurationName) :
base(endpointConfigurationName)
{
}
}
Run Code Online (Sandbox Code Playgroud)
我将其加载到Powershell脚本中:
Add-Type -Path "$LocalPath\MyService.Client.dll"
Add-Type -Path "$LocalPath\MyService.Contracts.dll"
Run Code Online (Sandbox Code Playgroud)
然后我尝试设置App.config(根据SO上的其他帖子),以便客户端可以使用在config中定义的Endpoint进行实例化,而不是在脚本本身中:
[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", "$LocalPath\MyService.Client.dll.config")
Run Code Online (Sandbox Code Playgroud)
我检查了AppDomain,并将配置文件设置为其ConfigurationFile属性.
当我创建客户端的实例时:
$endpointName = "MyServiceHttpEndpoint" # defined in the app.config file
$myclient = New-Object MyService.Client.MyServiceClient($endpointName)
Run Code Online (Sandbox Code Playgroud)
它贬低说:
Exception calling ".ctor" with "1" argument(s): "Could not find endpoint element with name 'MyServiceHttpEndpoint' and contract 'MyService.Contracts.IMyService' in the ServiceModel client configuration section. This might be because no configuration file …
我有一个旧的Cassandra集群需要恢复生机.我想清除所有用户和系统数据,所有存储的令牌,所有内容并从一个干净的平板开始 - 是否有推荐的方法这样做?
在gradle.build您可以引用buildDir并将其用作源或目标.如何buildDir从根build.gradle文件中引用子项目?
(还有一个类似的补充问题,如何在复制任务中引用子项目?我试过':subproject_name/some_directory'但是它有错误).
我有一系列简单的链式操作,可以使用在 Quarkus 服务中运行的 Panache 存储库检索和保存一些数据。当这些操作并行时,ContextNotActiveException会抛出 a 。在删除并行化的情况下,代码将按预期工作。
这段代码的工作原理:
dataRepository.get()
.map { convert(it) }
.forEach { perist(it) }
Run Code Online (Sandbox Code Playgroud)
这段代码没有:
dataRepository.get()
.parallelStream()
.map { convert(it) }
.forEach { perist(it) }
Run Code Online (Sandbox Code Playgroud)
Quarkus 文档非常有限,仅解决了 mutiny 或 RX 的使用。
我怎样才能传播上下文parallelStream()才能起作用?
在将对象写入HDFS时,我遇到了这个异常:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.avro.Schema$Parser.parse(Ljava/lang/String;[Ljava/lang/String;)Lorg/apache/avro/Schema;
at com.blah.SomeType.<clinit>(SomeType.java:10)
Run Code Online (Sandbox Code Playgroud)
它在生成的代码中引用的行是这样的:
public class SomeType extends org.apache.avro.specific.SpecificRecordBase implements org.apache.avro.specific.SpecificRecord {
public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse ..........
Run Code Online (Sandbox Code Playgroud)
我的代码中的调用是这样的:
val someTypeBuilder = SomeType.newBuilder()
.setSomeField("some value")
// set a whole load of other fields
Run Code Online (Sandbox Code Playgroud)
调用newBuilder()测试代码不会导致任何问题.
使用该hadoop jar命令在HDFS节点上运行jar .
有什么想法可能会出错吗?
这通知未处理的异常:
new Thread(_ => { throw new Exception(); }).Start();
Run Code Online (Sandbox Code Playgroud)
这不会(至少在你等待/检索结果之前):
Task.Factory.StartNew(() =>
{
throw new Exception();
});
Run Code Online (Sandbox Code Playgroud)
为什么?发生异常的线程发生了什么?它死了吗?
这是一个运行任务但不需要其结果或需要等待它的问题,如下所示:
_operationQueue = new BlockingCollection<Operation>();
Task.Factory.StartNew(() =>
{
foreach (var item in _operationQueue.GetConsumingEnumerable())
{
// do something that throws
}
}, TaskCreationOptions.LongRunning);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,_operationQueue左边是什么状态?
我知道我可以使用Continition with TaskContinuationOptions.OnlyOnFaulted,你能继续处理吗?
假设我有一个聚合类型Order,其中包含OrderItems.根据订单的状态以及在其上运行的用户角色,可以允许或不允许操作.
例如,如果用户角色是Customer并且订单的状态是Open,则允许添加和删除项目.相反,如果订单的状态Processing然后添加和删除项目不会允许的.但是,如果用户角色Manager和订单的状态Processing然后添加和删除项目被允许的.
我的问题是:
Order类型应该处理这些类型的权限吗?也就是说,它封装了关于哪些角色可以做什么的所有逻辑,因此依赖于用户角色.Order在权限服务中的类型之外处理,该服务将接受角色,操作和操作的主题(订单实例)并确定是否允许该操作?即,逻辑被外化并假设在对其执行操作之前进行验证,该操作Order不了解用户角色的概念.(注意:现实世界的用例在大量角色,状态和操作方面要复杂得多.授权发生在外层并且已经应用 - 这个问题是关于实例特定的权限.换句话说,客户是授权访问"AddItemToOrder"API端点,但根据订单的具体状态,可能允许或不允许实际操作.)
当写入文件Mongodb使用Morphia,这样的结构将被写入没有任何问题,并没有需要的@Embedded注释:
@Entity
public class Blog {
@Id
private String id;
private List<Comment> comments;
}
Run Code Online (Sandbox Code Playgroud)
该comments字段被愉快地存储为嵌套Comment元素数组(Comment是一个没有注释的普通 POJO)。
但是,Morphia文档建议我应该使用它:
@Entity
public class Blog {
@Id
private String id;
@Embedded
private List<Comment> comments;
}
Run Code Online (Sandbox Code Playgroud)
但是在我的测试中,使用@Embedded注释似乎并没有比简单地编写没有注释的结构做任何额外的事情。
那么@Embedded注解实际上是做什么的呢?除了简单地写入数据之外,它是否会影响查询、索引或其他一些存储功能的能力?
反应器具有许多这些方法,doOnSuccessOrError和doAfterSuccessOrError例如。
有什么实质区别?该文档没有澄清。
我正在尝试在 Kotlin 中创建函数引用,我的理解是我应该能够KFunctionN在编译时访问生成的接口,但我收到了KFunction1<T, R>.
例如:
inline fun <reified T : Any, reified R : Any> passFn(someFn: KFunction1<T, R>) {
//consume someFn
}
Run Code Online (Sandbox Code Playgroud)
我在类路径上有 kotlin-reflect 并且工作正常。我缺少什么想法吗?
我正在使用 Kotlin 1.3.21 和 IntelliJ 2018.3。
我在IntelliJ中运行了一堆Scala测试.一个是失败的.我似乎无法只运行那个失败的测试(ala Visual Studio) - 当然必须有一种方法在IDE中执行此操作?
C#developer here,通过基本的Java示例.JUnit测试用例似乎与我见过的教程中的测试类打包在一起.是对的吗?在C#中,我们创建了一个新的Test项目 - 在Java中,常见的模式是相似的吗?