我需要使用所有标准RESTful方法发送HTTP请求并访问请求正文以便使用它发送/接收JSON.我调查过,
这几乎是完美的,但有些情况下,例如,如果服务器关闭,函数GetResponse可能需要几秒钟才能返回 - 因为它是一个同步方法 - 冻结该时段的应用程序.这个方法的异步版本,BeginGetResponse,似乎不是异步工作(在Unity中),因为它仍然冻结该时期的应用程序.
由于某些原因,只支持POST和GET请求 - 但我还需要PUT和DELETE(标准的RESTful方法),所以我没有进一步深入研究它.
为了运行WebRequest.HttpWebRequest.GetResponse而不冻结应用程序,我研究了使用线程.线程似乎在编辑器中工作(但看起来非常不稳定 - 如果你在应用程序退出时不停止线程,即使你停止它也会永远在编辑器中运行),并且当构建到iOS设备时它会立即崩溃因为我尝试启动一个线程(我忘记写下错误,我现在无法访问它).
荒谬,甚至不会尝试这个.
这个.我想知道他们是如何管理它的.
这是我正在尝试的WebRequest.BeginGetResponse方法的示例,
// The RequestState class passes data across async calls.
public class RequestState
{
const int BufferSize = 1024;
public StringBuilder RequestData;
public byte[] BufferRead;
public WebRequest Request;
public Stream ResponseStream;
// Create Decoder for appropriate enconding type.
public Decoder StreamDecode = Encoding.UTF8.GetDecoder();
public RequestState()
{
BufferRead = new byte[BufferSize];
RequestData = new StringBuilder(String.Empty);
Request = null;
ResponseStream = null;
} …Run Code Online (Sandbox Code Playgroud) 我对终端的版本控制没有任何经验,但据我所知,SmartGit没有终端也没有使用我可以通过终端配置的外部git客户端,所以我真的不知道我怎么能在它上面执行git配置命令.具体来说,我想做:
git config --global core.autocrlf true
Run Code Online (Sandbox Code Playgroud)
它是否具有UI中可用的等效配置选项,还是有其他方法可以应用此选项?
我认为通常当你分支时,你分支整个主干,但在我的公司我看到人们分支主干和更深的子文件夹 - 当你试图在主干中找到正确的目录时,除了混乱之外还有任何实际后果吗?合并回来?
在这个例子中,我想我有大约4行代码可以用函数封装,而且这个函数肯定会用在同一层次结构中的其他类中.
我有以下选项来重用该代码:
我绝对不会做1或4.我过去会做2但是我试图继续保留组合而不是继承原则所以我倾向于4但是对于最有可能的东西似乎很多永远不要在层次结构之外使用,只有4行.我知道这是非常挑剔的,但我想弄清楚这样做的正确方法.
我已经了解了使用有限状态机的许多缺点,但是没有真正看到任何建议的复杂行为建模的替代模式 - 有没有?
我使用NUnit测试适配器将NUnit运行到VS2012中,我可以运行所有测试,但是如果我想在每次遇到Assert时调试所有测试,它会抛出异常.如何让它不会抛出Asserts的异常?我做错了什么吗?
所以说我有一个C#类,
class Foo : Bar, IBar, IBar2
{
}
Run Code Online (Sandbox Code Playgroud)
...其中Bar是一个类,IWhatever和IFine是接口.我打算在多个类中使用类似的IWhatever和IFine实现 - 我可以看到封装这些代码并在所有类中重用它的唯一理智方法是创建一个类,无论继承自IW和I的继承自IFine和使它们成为实现这些接口的类的成员,然后在从接口实现的成员中调用它们的成员,如下所示:
class Foo : Bar, IWhatever, IFine
{
IWhatever mWhatever;
IFine mFine;
Foo()
{
mWhatever = new Whatever();
mFine = new Fine();
}
// from IWhatever
void Kick()
{
mWhatever.Kick();
}
// from IFine
void Punch()
{
mFine.Punch();
}
}
Run Code Online (Sandbox Code Playgroud)
我做得对吗?有没有更好的办法?
如果我有像这样的服务器接口...
interface IServer
{
void Login();
void Post();
void Get();
}
Run Code Online (Sandbox Code Playgroud)
...... 除非你先做,否则在哪里工作Post和Get不工作Login.它是否是对封装的语义违反,因为它使得您对接口的使用隐含地依赖于实现?你会怎么解决它?
如果一个类依赖于多个其他类的接口,那就是违反了SRP,或者只是在两个接口都发生变化时才是违规,或者这完全是错误的思路?
c# ×6
inheritance ×2
branch ×1
composition ×1
debugging ×1
git ×1
http ×1
interface ×1
ios ×1
nunit ×1
single-responsibility-principle ×1
smartgit ×1
svn ×1