我正在尝试创建一个新的QulaificationType,工人必须回答一个问题以获得资格。下面是我的C#代码。我在C#api中使用createQualificationType方法时遇到错误。请帮忙。
using System;
using System.Collections.Generic;
using System.Text;
using Amazon.WebServices.MechanicalTurk;
using Amazon.WebServices.MechanicalTurk.Domain;
namespace CreateHITExample
{
class Program
{
static SimpleClient client = new SimpleClient();
static void Main(string[] args)
{
CreateNewHIT();
}
static void CreateNewHIT()
{
**QuestionFormQuestion** question = new QuestionFormQuestion();
question.IsRequired = true;
question.QuestionIdentifier = "1";
**ContentType qnContent = new ContentType();**
QualificationType qualType = client.CreateQualificationType("MyQual2", string.Empty, "My Qualification Type", QualificationTypeStatus.Active, 0, **question**, "680", 600, true, 100);
string qualTypeId = qualType.QualificationTypeId;
Console.WriteLine("Created Qualification Type ID 2: {0}", qualTypeId);
}
}
}
我必须将问题对象作为参数传递给CreateQualificationType方法。 从上面的代码中可以看出,问题对象是QuestionFormQuestion类。
以下是可能有所帮助的类定义。
来自AWS MTurk dotnet API的QuestionFormQuestion类定义:
public class QuestionFormQuestion
{
public QuestionFormQuestion();
public AnswerSpecificationType AnswerSpecification { get; set; }
public string DisplayName { get; set; }
public bool IsRequired { get; set; }
[XmlIgnore]
public bool IsRequiredSpecified { get; set; }
**public ContentType QuestionContent { get; set; }**
public string QuestionIdentifier { get; set; }
}
实际问题文本进入QuestionContent属性,该属性的类型为" ContentType"。
来自AWS MTurk dotnet API的ContentType类定义:
public class ContentType
{
public ContentType();
[XmlChoiceIdentifier("ItemsElementName")]
[XmlElement("Application", typeof(ApplicationContentType))]
[XmlElement("Binary", typeof(BinaryContentType))]
[XmlElement("FormattedContent", typeof(String))]
[XmlElement("Text", typeof(String))]
[XmlElement("Title", typeof(String))]
public object[] Items { get; set; }
[XmlElement("ItemsElementName")]
[XmlIgnore]
public ItemsChoiceType[] ItemsElementName { get; set; }
}
我必须将Actual Question语句移动到ContentType对象的[XmlElement(" Text",typeof(String))]元素。我不知道这样做的语法。请帮助。
答案 0 :(得分:0)
我在使用Ruby SDK时遇到了相同的ValueException错误消息,直到我发现(与所有API文档示例不同,它显示了XML是预期的) CreateHit期待Hash,而不是某些参数的XML (XML for Question,但Hash for QualificationRequirement)。
在我的情况下,当我提供XML时,它拒绝了QualificationRequirement,就像它们在文档中显示的那样,但是当我将它作为Hash提供时它就起作用了。
但由于错误信息是相同的,我怀疑这可能是你遇到的问题。 (错误与语言无关......它不是您的SDK,而是当您的SDK提交HIT时从AWS返回的内容。)
testImageView
=[[UIImageView alloc]initWithFrame:CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y ,self.view.frame.size.width, self.view.frame.size.height
)]