Frage

Ich kam in diesem wirklich gut aussehende Code Scala während XMPP für ein Projekt .Net forschen wir arbeiten an:

object Main {

  /**
   * @param args the command line arguments
   */
  def main(args: Array[String]) :Unit = {
      new XMPPComponent(
        new ComponentConfig() {
            def secret() : String = { "secret.goes.here" }
            def server() : String = { "communitivity.com" }
            def subdomain() : String = { "weather" }
            def name() : String = { "US Weather" }
            def description() : String = { "Weather component that also supported SPARQL/XMPP" }
        },
       actor {
        loop {
            react {
                case (pkt:Packet, out : Actor) =>
                    Console.println("Received packet...\n"+pkt.toXML)
                    pkt match {
                        case message:Message =>
                            val reply  = new Message()
                            reply.setTo(message.getFrom())
                            reply.setFrom(message.getTo())
                            reply.setType(message.getType())
                            reply.setThread(message.getThread())
                            reply.setBody("Received '"+message.getBody()+"', tyvm")
                            out ! reply
                        case _ =>
                            Console.println("Received something other than Message")
                    }
                 case _ =>
                    Console.println("Received something other than (Packet, actor)")
            }
        }
       }
    ).start
  }
}

(Dies wurde von http: / /github.com/Communitivity/MinimalScalaXMPPComponent/blob/master/src/org/communitivity/echoxmpp/Main.scala )

Die Schauspieler und Pattern-Matching Zeug sieht aus wie eine wirklich schöne Art und Weise zu schreiben Komponenten in einer skalierbaren Art und Weise. Ich habe nicht in der Lage gewesen, eine C # Schauspieler Bibliotheken zu finden, die reifen aussehen, und Axum Lernen scheint übertrieben.

Was wäre der richtige Weg, dies in c # angreifen? (Ohne Berücksichtigung des XMPP-spezifischen Code, natürlich - ich bin mehr daran interessiert, was die C # -Version von Schauspielern und Pattern-Matching aussehen würde).

War es hilfreich?

Lösung

Es gibt Schauspieler wie Bibliotheken avaliable für .NET finden Sie unter retlang für einen, auch < a href = "http://www.trelford.com/blog/post/F-Agents-and-Retlang-quick-comparison.aspx" rel = "nofollow noreferrer"> F # Agenten ähnlich sind.

Siehe auch diese Frage .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top