小编AK_*_*AK_的帖子

F#轻量级脚本环境

我在这里使用F#为我们的服务器上的任务自动执行一些脚本.我真的很想拥有一个轻便的环境,我可以安装在服务器上,给我FSI和自动完成

谢谢


只是为了澄清我正在寻找像PowerShell ISE但VS自动完成的东西

.net c# f# f#-interactive

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

自定义xml序列化

我需要帮助,我有一些数据来自xml,我想制作一个对象,用它做一些事情,序列化它并发送它...但它必须是某种自定义序列化.

xml喜欢:

<Animals Ver="12" class="1" something="2">
    <Dog Ver="12" class="2" something="17">
        <Name> a </Name>
        <Sound> oof </Sound>
        <SomeOtherProp>12</SomeOtherProp>

    </Dog>
    <Cat Ver="12" class="3" something="4">
       <Name> b </Name>
       <Sound> meow </Sound>
    </Cat>
</Animals>
Run Code Online (Sandbox Code Playgroud)

需要表现为:

abstract class Animal :XmlMagic
{
  public string Name{get;set;}
  public string Sound{get;set;}

  public void SomeMagicalXMLSerializationMethod()
  {}
  public void SomeMagicalXMLDeSerializationMethod()
  {}
}

class Dog: Animal, XmlMagic
{
  public int SomeOtherProp{get;set;}
  public void SomeMagicalXMLSerializationMethod()
  {}
  public void SomeMagicalXMLDeSerializationMethod()
  {}
}
Run Code Online (Sandbox Code Playgroud)

.net c# xml

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

Rx Task.Factory.StartNew在.Net 3.5问题上启动两个任务

我正在使用.Net 3.5上的Reactive Extensions库的任务部分

它大部分工作顺利,但在一个地方它调用相同的任务两次.

电话看起来像这样:

Task.Factory.StartNew(
    () => Processor.ProcessMessage(incomingMessage),
    TaskCreationOptions.PreferFairness );
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?这是一个错误吗?

----更新

我认为问题在于c#在lambdas中关闭的方式.问题不在TPL中,与普通旧线程池一起返回同样的问题.

这解决了它:

foreach (var Processor in processors)
{
 object[] crap = new object[2];
 crap[0] = Processor;
 crap[1] = incomingMessage;
 Task.Factory.StartNew(Magic, crap, TaskCreationOptions.PreferFairness);
}

public void Magic(object obj)
{
 object[] crap =(object[]) obj;
 ((IIncomingMessageProcessor)crap[0]).ProcessMessage((IncomingMessageBase)crap[1]);
}
Run Code Online (Sandbox Code Playgroud)

原始来源是:

foreach (var Processor in processors)
{
Task.Factory.StartNew(
    () => Processor.ProcessMessage(incomingMessage),
    TaskCreationOptions.PreferFairness );
}
Run Code Online (Sandbox Code Playgroud)

所以我在处理器周围关闭,我想问题是它为lambda回收相同的对象并交换处理器.

----更新2

我确信这是问题所在.我在创建任务时重构和调试了System.Threading.dll,它是使用相同的委托(Same ObjectID)创建的,并且处理器在迭代之间的Target属性中发生了变化.谁知道一个好的工作?

----更新3这也有效(感谢Judah Himango):

foreach (var processor in processors)
{
 var crap = processor;
 Task.Factory.StartNew(() => crap.ProcessMessage(incomingMessage), …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading system.reactive

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

通过HttpWebRequest传递二进制数据

使用.Net,我想通过HttpWebRequest传递一些二进制数据(一些序列化对象).

我可以将它放在请求流上,还是需要将其编码为base64字符串?

我的意思是如果我有:

byte[] data = new byte[1000];
GetSomeStrangeData(data);
Run Code Online (Sandbox Code Playgroud)

我是否需要使用Convert.ToBase64String或者我可以将它从HttpWebRequest.GetRequestStream写入流中吗?


后人:

http://tools.ietf.org/html/rfc2616

http://msdn.microsoft.com/en-us/library/d4cek6cc.aspx

http://www.wireshark.org/

http://www.fiddler2.com

.net c# networking http httpwebrequest

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

在C++中寻找MemoryStream

在C#的精彩世界里,我可以创建一个内存流而不指定它的大小,写入它然后只需要获取底层缓冲区.

我怎样才能在c ++中做同样的事情?基本上我需要这样做:

memory_stream  ms(GROW_AS_MUCH_AS_YOU_LIKE);

ms << someLargeObjects << someSmallObjects << someObjectsWhosSizeIDontKnow;

unsigned char* buffer = ms.GetBuffer();
int bufferSize = ms.GetBufferSize();

rawNetworkSocket.Send(buffer, bufferSize);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,虽然我并不熟悉它,但我的项目却有所提升.

谢谢.

c++ buffer boost stl stream

3
推荐指数
1
解决办法
5945
查看次数

我如何为无符号字符向量创建某种istream

如何从缓冲区unsigned char*或vector创建一个istream.

基本上我想要:

void Func(vector<unsigned char> data)
{
  someSortOfIstream x (data);

  x >> something;
}
Run Code Online (Sandbox Code Playgroud)

也使用提升....

c++ boost stl

3
推荐指数
1
解决办法
2317
查看次数

如何在 SQL Server 中将数据库名称作为参数传递

USE master
GO

DECLARE @DbName nvarchar(MAX)
SET @DbName = N'DataBase'

ALTER DATABASE @DbName
SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE @DbName SET OFFLINE WITH NO_WAIT
GO

ALTER DATABASE @DbName SET ONLINE
GO

ALTER DATABASE @DbName
SET MULTI_USER
GO
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用 EXEC,但它有点难看......

sql sql-server dml

3
推荐指数
1
解决办法
5120
查看次数

.Net的LINQ中的错误,还是我遗漏了什么?

我有一个奇怪的错误,我不明白,并改变LINQ的IEnumerable列表中途固定它,我不明白为什么

不是真正的代码,但非常相似下面的代码不起作用:

// an IEnumerable of some object (Clasess) internally an array
var ansestors = GetAnsestors();

            var current = GetCurrentServerNode();

            var result = from serverNode in ansestors
                         select new PolicyResult
                                    {
                                      //Some irrelevant stuff 
                                        OnNotAvailableNode = NodeProcessingActionEnum.ContinueExecution,
                                    };

            var thisNode = new PolicyResult
            {
                //Some irrelevant stuff 
                OnNotAvailableNode = NodeProcessingActionEnum.ThrowException,
            };

            result = result.Reverse();
            result = result.Concat(new List<PolicyResult> { thisNode });

            result.First().OnNotAvailableNode = NodeProcessingActionEnum.ThrowException;

            // When looking in the debugger, and in logs, the first element of the
            // result …
Run Code Online (Sandbox Code Playgroud)

.net c# linq

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

F#环境集成(用于脚本)

我喜欢F#,我想通过编写一些脚本来实现一些烦人任务的自动化.

我如何以与CMD或PowerShell相同的方式与其他程序交互,例如RoboCopy或iisreset或net?

我知道我可以自己做,System.Diagnostics.Process但很难做到正确(返回代码,标准流等).

必须有一个图书馆,任何建议?

.net powershell f# cmd f#-scripting

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

C++寻找String.Replace()

我在C++中有一个char数组,它像{'a','b','c',0,0,0,0}

现在我把它改成一个流,我希望它看起来像"abc",其中有四个空格,我主要使用std :: stiring,我也有提升.我怎么能用C++做到这一点

基本上我认为我正在寻找类似的东西

char hellishCString[7] = {'a','b','c',0,0,0,0}; // comes from some wired struct actually...
std::string newString(hellishCString, sizeof(hellishCString));

newString.Replace(0,' '); // not real C++

ar << newString;
Run Code Online (Sandbox Code Playgroud)

c++ stdstring

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