我有以下代码:
[DataContract]
class TestContract {
private String _Name;
private Int32 _Age;
[DataMember( Name = "Name" )]
public String Name {
get { return _Name; }
set { _Name = value; }
}
[DataMember( Name = "Age" )]
public Int32 Age {
get { return _Age; }
set { _Age = value; }
}
}
[Serializable]
public class DNCJsonDictionary<K, V> : ISerializable {
Dictionary<K, V> dict = new Dictionary<K, V>();
public DNCJsonDictionary() { }
protected DNCJsonDictionary( SerializationInfo info, StreamingContext context ) …Run Code Online (Sandbox Code Playgroud) 我在使用jquery将一些json数据发布到我在WCF服务上的rest方法时遇到了一些麻烦.
在WCF方面,这是操作合同:
[OperationContract]
[WebInvoke(Method = "POST",
BodyStyle = WebMessageBodyStyle.Bare,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "PostSomething")]
MyResult PostSomething(MyRequest request);
Run Code Online (Sandbox Code Playgroud)
双方MyResult并MyRequest标有所有必要DataContract和DataMember属性和服务暴露WebHttp端点.
在JQuery方面,这是我的函数调用:
var jsonStr = JSON.stringify(reqObj);
$.ajax({
type: "POST",
dataType: "json",
url: "http://localhost/MyService/PostSomething",
contentType: "application/json; charset=utf-8",
data: jsonStr,
success: function (html) {
alert(html);
}
});
Run Code Online (Sandbox Code Playgroud)
这个请求永远不会到达我的方法(我每次都得到一个405方法不允许),并查看Charles的请求如下所示:
OPTIONS /MyService/PostSomething HTTP/1.1
Host: localhost
Cache-Control: max-age=0
Access-Control-Request-Method: POST
Origin: null
Access-Control-Request-Headers: Content-Type, Accept
Accept: */*
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序启动一些线程来做东西.我有一个TThreadOnTerminate程序,每个线程访问一些线程变量,用结果填充网格.(每个线程执行不同的任务,但答案总是相同的,即成功或失败StringList的消息.)
所以我有:
procedure TFormMain.Thread1OnTerminate(Sender: TObject);
begin
Result := TThread1(Sender).Result;
AddMessagesToGrid(TThread1(Sender).Messages);
end;
procedure TFormMain.Thread2OnTerminate(Sender: TObject);
begin
Result := TThread2(Sender).Result;
AddMessagesToGrid(TThread2(Sender).Messages);
end;
Run Code Online (Sandbox Code Playgroud)
我的问题如下.我可以有一个'通用' OnTerminate程序来处理我所有线程的结果,如下所示?
procedure TFormMain.Thread1OnTerminate(Sender: TObject);
begin
Result := <Sender Thread>.Result;
AddMessagesToGrid(<Sender Thread>.Messages);
end;
Run Code Online (Sandbox Code Playgroud)
我们目前正在使用Delphi 2007.很快就升级(我希望)到Delphi XE.
为了与我的一位同事结算赌注,我想知道VB6本身是否支持任何未签名的数据类型.
我认为答案是"不",但我似乎无法找到任何证实这一点的官方文件.一个简单的链接到Microsoft文档将是一个可接受的答案; 关于为什么不支持这些类型的历史理由将是一个额外的奖励.
我有一个ObservableCollection<Object1>类型(Messages在下面的代码中)绑定到一个ItemsControl.Object1有两个属性即ErrMsg和IsError.ErrMsg如果是错误(即如果IsError是),我想显示红色,否则显示黑色.
<ItemsControl
Height="Auto"
Background="White"
ItemsSource="{Binding Messages}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock
Margin="5,0,0,0"
Text="{Binding ErrMsg}"
Width="Auto"
Foreground="Black">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger
Binding="{Binding IsError}"
Value="true">
<Setter
Property="TextBlock.Foreground"
Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Run Code Online (Sandbox Code Playgroud)
问题是所有的消息总是以黑色显示而不管IsError价值如何?
我怎样才能做到这一点?
我正在 android 2.2 中开发一个应用程序。
当更改设备方向(通过旋转设备)时,我的 Activity 边界会绘制一个黑屏(甚至没有 Activity 标题),这需要几秒钟(7-15 秒),然后最终绘制 Activity。
我已经测试了它模拟器和两个不同的设备,行为是相同的。
在 LogCat 我有下一个输出:
02-02 09:18:06.044: WARN/WindowManager(1300): MyActivity freeze timeout expired.
02-02 09:18:06.044: WARN/WindowManager(1300): Force clearing freeze: AppWindowToken{4515af88 token=HistoryRecord{44f52458 com.project.package/.MyActivity}}
02-02 09:18:08.054: WARN/WindowManager(1300): Window freeze timeout expired.
02-02 09:18:08.054: WARN/SurfaceFlinger(1300): timeout expired mFreezeDisplay=1, mFreezeCount=0
02-02 09:18:08.054: WARN/WindowManager(1300): Force clearing orientation change: Window{45178a00 com.project.package/com.project.package.Activity paused=false}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会这样。感谢您的评论,建议,答案。
我正在开发一个应用程序,我使用了Pan Gesture以及Swipe Gesture.因此,每次我执行Swipe Gesture时,Pan手势中的方法总是被调用,并且Swipe Gesture方法不会被调用.
所有的手势方法之间有没有优先权?
iphone uigesturerecognizer ios uiswipegesturerecognizer uipangesturerecognizer
我昨晚无法入睡,开始思考std::swap.这是熟悉的C++ 98版本:
template <typename T>
void swap(T& a, T& b)
{
T c(a);
a = b;
b = c;
}
Run Code Online (Sandbox Code Playgroud)
如果用户定义的类Foo使用外部资源,则效率低下.常用的习语是提供一种方法void Foo::swap(Foo& other)和一种专业化std::swap<Foo>.请注意,这不适用于类模板,因为您不能部分地专门化函数模板,并且重std命名命名空间中的名称是非法的.解决方案是在一个人自己的命名空间中编写模板函数,并依赖于参数依赖查找来查找它.这主要取决于客户端遵循" using std::swap成语"而不是std::swap直接调用.非常脆弱.
在C++ 0x中,如果Foo有一个用户定义的移动构造函数和一个移动赋值运算符,提供一个自定义swap方法和一个特化std::swap<Foo>几乎没有性能优势,因为C++ 0x版本std::swap使用高效的移动而不是副本:
#include <utility>
template <typename T>
void swap(T& a, T& b)
{
T c(std::move(a));
a = std::move(b);
b = std::move(c);
}
Run Code Online (Sandbox Code Playgroud)
不必再捣乱swap已经从程序员那里承担了很多负担.当前的编译器不会自动生成移动构造函数和移动赋值运算符,但据我所知,这将改变.剩下的唯一问题是异常安全,因为一般来说,允许移动操作,这会打开一大堆蠕虫.问题是"移动对象的状态究竟是什么?" 使事情进一步复杂化.
然后我在想,std::swap如果一切顺利的话,C++ 0x 中的语义究竟是什么?交换之前和之后的对象状态是什么?通常,通过移动操作进行交换不会触及外部资源,只会触及"平面"对象表示本身. …
我正在开发一个Twisted网络应用程序,其中一部分由一个用Django编写的Web界面组成.
我希望使用Twisted的WSGI服务器来托管Web界面,并且我已经编写了一个工作"tap"插件来允许我使用twistd.
当使用-n标志运行服务器时(不要守护进程)一切正常,但是当删除此标志时,服务器根本不响应请求,并且没有记录消息(尽管服务器仍在运行).
Twisted的Trac上有一个错误,似乎完全描述了问题,我的插件恰好是基于票证中引用的代码.
不幸的是,这个问题还没有解决 - 而且它是在一年前提出的.
我试图创建一个ThreadPoolService类,它在被调用时扩展Service并启动给定:ThreadPoolstartService
class ThreadPoolService(service.Service):
def __init__(self, pool):
self.pool = pool
def startService(self):
super(ThreadPoolService, self).startService()
self.pool.start()
def stopService(self):
super(ThreadPoolService, self).stopService()
self.pool.stop()
Run Code Online (Sandbox Code Playgroud)
但是,Twisted似乎根本没有调用该startService方法.我认为问题在于,使用"tap"插件,ServiceMaker只能返回一个要启动的服务 - 并且属于同一应用程序的任何其他服务都不会启动.显然,我正在返回一个TCPServer包含WSGI根的服务.
在这一点上,我有点像砖墙.有没有人对如何解决这个问题有任何想法?
我试图将一个列表附加到另一个列表中.如果我传递两个列表的指针指针并只显示它们,那么代码工作正常.但是如果我使用代码到达第一个列表的NULL指针,然后将它等同于第二个列表中的第一个,那么它会给出一个分段错误.请让我知道错误是什么.代码如下:
#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node* next;
}*Head,*New;
void display(struct node **p)
{
struct node *curptr;
curptr=*p;
if(curptr==NULL)
printf("list is empty");
else
{
while(curptr)
{
printf("->%d",curptr->data);
curptr=curptr->next;
}
}
}
void combine(struct node **a,struct node **b)
{
//display(&(*a));
struct node *aptr;
aptr=*a;
while(aptr)
aptr=aptr->next;
aptr->next=*b;
*b=NULL;
display(&(*a));
//display(&(*a));
//display(&(*b));
}
void main()
{
Head=NULL;
New=NULL;
int choice;
while(1)
{
case 9:
{
printf("Combining two lists");
combine(&Head,&New);
break;
}
Run Code Online (Sandbox Code Playgroud) .net ×1
android ×1
c ×1
c# ×1
c++ ×1
c++11 ×1
datacontract ×1
datatrigger ×1
delphi ×1
django ×1
ios ×1
iphone ×1
itemscontrol ×1
jquery ×1
linked-list ×1
python ×1
reflection ×1
rest ×1
styles ×1
swap ×1
threadpool ×1
twisted ×1
unsigned ×1
vb6 ×1
wcf ×1
wpf ×1
wsgi ×1