小编Wil*_* Am的帖子

.NET/MONO交叉编译的最佳实践

编写可以在.NET(windows)和Mono(linux)上交叉编译的代码的最佳实践是什么?虽然我对.NET非常熟悉,但我对Mono及其所有问题都没有经验.有没有人看过关于这个的好博客文章或最佳实践论文,我还没有能够挖掘出来?我会坚持使用C#3.0级别的功能.

与我有关的事情首先是Interop,因为我需要调用一些本机代码.接下来是处理名称空间的最佳方法,例如Mono.XXX.我应该使用一堆#if吗?隔离每个平台程序集中的代码?

任何有关建筑和设计的建议都将不胜感激!如果你在visual studio(任何版本)的Linux/Mono交叉编译方面有任何经验,我也会对此感兴趣.

.net mono

14
推荐指数
1
解决办法
3339
查看次数

Akka-http:接受和内容类型处理

我正在尝试Akka-http,希望有人可以解释以下问题:

  1. 如何根据请求中的accept:标头创建不同的路由?例如,我想要一个代码路径来处理"json",一个代码来处理"xml"请求(如果缺少头,则默认为"json")

  2. 如果我不希望推断出contentType,我该如何指定它?例如,在下面的代码中,我尝试通过compactPrint()运行json,但这会将其更改为字符串,因此为"text/plain".我想覆盖它并告诉客户端它仍然是json.

我的代码是这样的;

...
path("api") {
          get {
              complete {
                getStuff.map[ToResponseMarshallable] {
                  case Right(r) if r.isEmpty => List[String]().toJson.compactPrint
                  case Right(r) => r.toJson.compactPrint
                  case Left(e) => BadRequest -> e
                }
              }
          }
        }
...
Run Code Online (Sandbox Code Playgroud)

这种情况下的响应是text/plain,因为compactPrint创建了一个字符串.批评非常欢迎.;)

scala akka akka-http

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

使用GP Extension处理组策略

我创建了一个实现ProcessGroupPolicyEx的组策略扩展.当我收到团体政策时,我会被通知.

然而,我对如何从GPO内部阅读政策感到茫然.该示例在循环遍历GPO时停止:

 for( pCurGPO = pChangedGPOList; pCurGPO; pCurGPO = pCurGPO->pNext )
   {
       if( *pbAbort )
       {
           // Abort.
           break;
       }
       // ...
   }
Run Code Online (Sandbox Code Playgroud)

这很好,但我如何获得pCurGPO中的策略(实际设置)?我需要获取此GPO包含的设置,或者存储它们的注册表项.这是因为我创建了多个针对我的扩展的ADMX模板,所以我需要区分它们.

到目前为止,我已经找到了一些示例,但他们认为扩展程序事先知道哪些注册表将被更改.但是,在我的情况下,我不希望扩展程序做出这个假设,我希望它检查更新的GPO并确切地确定要更改的内容.

任何指针都将非常感激.

c windows group-policy

8
推荐指数
1
解决办法
153
查看次数

Wpf - 以主桌面为中心

我知道WPF有一个"CenterScreen"值,用于在桌面上居中一个窗口.但是,在双显示器上,这不是很愉快.

我如何以主显示器为中心?我是否需要经历检测主桌面,获取其几何图形等的歌曲和舞蹈,还是有更好的方法?

.net wpf window wpf-positioning

7
推荐指数
1
解决办法
1980
查看次数

Scalatra/Slick并插入IF NOT EXISTS

我是一个新手,所以希望有一些耐心.:)

如果某个值不存在,我会尝试填充两个表.基本上我有:

TABLE b
(
    id VARCHAR(254) PRIMARY KEY NOT NULL
);


TABLE d
(
    id VARCHAR(254) PRIMARY KEY NOT NULL,
    relay INT NOT NULL,
    FOREIGN KEY ( relay ) REFERENCES b ( id )
);
Run Code Online (Sandbox Code Playgroud)

所以我正在尝试编写一个函数,用一个新值填充两个表,如果它不存在,或者忽略它,否则......当然包含在一个事务中:

IF (NOT EXISTS(SELECT * FROM b where id='something'))
    insert into b values('something')
    insert into d values(1, 'something')
END
Run Code Online (Sandbox Code Playgroud)

实现这样的目标最有效的方法是什么?如果重要的是我正在使用POstgreSQL 9.1,但我想保持它相当通用.

(编辑)这些是我当前的表格defs(为简化说明而简化):

object d extends Table[(String, String, Int)]("d")
{
  def id=column[String]("id", O.PrimaryKey)

  def relay=column[Int]("relay")
  def relay_ref=foreignKey("d2b.fk", relay, b)(_.id)
  def * = id ~ relay …
Run Code Online (Sandbox Code Playgroud)

database scala scalatra slick

7
推荐指数
1
解决办法
3640
查看次数

Scala工厂方法与泛型

我有几个对象,我正在尝试编写工厂方法.

简化,这些是:

case class a[a1,a2](j:a1, k:a2) {}
case class b[b1,b2](j:b1, k:b2) {}
Run Code Online (Sandbox Code Playgroud)

我想创建一个方法,允许我传入类型,并获得该类的实例.我想尝试这样的事情:

class myfactory[T] {
   def make[K,L](p1: K, p2: L): T[K,L] = {
     new T(p1,p2)
   }
}
Run Code Online (Sandbox Code Playgroud)

这显然不起作用(由于各种原因,包括'T不能参数'),但有没有一个优雅的解决方案来创建这样的东西?

scala

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

Scala与单位一起

我很好奇这样做的正确方法.假设我想通过方法发出成功或失败的信号.这是否可以接受,如果在成功的情况下除了成功之外没有什么我想说的话?

def fn(): Either[Throwable, Unit]
Run Code Online (Sandbox Code Playgroud)

从这个方法返回Right()的正确方法是什么?显然只是返回Right()给出了一个弃用警告(插入()的参数列表的改编已被弃用).

我也可以做Option [Throwable],但这并不符合我如何阅读Option的精神.或者可能返回scala.util.Try的结果并评估成功/失败?

- 关于弃用警告,仅供参考.

Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_101).
Type in expressions for evaluation. Or try :help.

scala> def fn:Either[Throwable, Unit] = { Right() }
<console>:11: warning: Adaptation of argument list by inserting () has been deprecated: this is unlikely to be what you want.
        signature: Right.apply[A, B](b: B): scala.util.Right[A,B]
  given arguments: <none>
 after adaptation: Right((): Unit)
       def fn:Either[Throwable, Unit] = { Right() }
                                               ^
fn: Either[Throwable,Unit]
Run Code Online (Sandbox Code Playgroud)

scala

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

Monads在实践中作为Monoids

我试图以更实际的方式理解monad和monoids之间的关系.如果这个问题毫无意义,我会提前道歉,我还在苦苦挣扎.

例如,假设我有:

trait Monoid[T] {
  def zero: T
  def combine: (T,T) => T
}
Run Code Online (Sandbox Code Playgroud)

和(从这里):

trait Monad[+M[_]] {
  def unit[A](a: A): M[A]
  def bind[A, B](m: M[A])(f: A => M[B]): M[B]
}
Run Code Online (Sandbox Code Playgroud)

是否可以在Monad和Monoid特征之间建立关系,例如我可以将Monad视为Monoid(假设我正确理解Monad是Monoid的特例)?

monads functional-programming scala

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

将元组传递给函数参数

假设我有这个代码:

def a(x:Int,y:Int):Int = x+y

def b:(Int,Int) = (1,2)
Run Code Online (Sandbox Code Playgroud)

我想完成:

  a(b)
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?还有更有效的方法调用预定义的多参数函数 - 在我的情况下8 - 与另一个函数的结果?

scala

4
推荐指数
1
解决办法
1307
查看次数

akka-streams与akka-cluster

我的akka​​-streams还在继续学习.我想将我的akka​​-streams应用程序与akka-cluster和DistributedPubSubMediator集成.

添加对Publish的支持是相当直接的,但订阅部分我遇到了麻烦.

作为参考,订户在Typesafe样本中给出如下:

class ChatClient(name: String) extends Actor {
  val mediator = DistributedPubSub(context.system).mediator
  mediator ! Subscribe("some topic", self)

  def receive = {
    case ChatClient.Message(from, text) =>
      ...process message...
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我应该如何将这个演员与我的流程集成,如何在没有流背压的情况下确保我获得发布消息?

我正在尝试完成一个pubsub模型,其中一个流可以发布消息而另一个流将使用它(如果订阅).

scala akka akka-cluster akka-stream

4
推荐指数
1
解决办法
3721
查看次数