2012-06-12 56 views

回答

1

你能发表一个代码摘录来说明问题吗?如果您按照Rally SOAP API - How do I add an attachment to a TestCaseResult中的方法行事,那么您正处于正确的轨道上。以下是在向故事添加附件时适用于我的快速代码示例:

 // issue query for target story 
     QueryResult queryResult = service.query(workspace, objectType, queryString, orderString, fetchFullObjects, start, pageSize); 

     // look at the object returned from query() 
     Console.WriteLine("Query returned " + queryResult.TotalResultCount + " objects"); 

     // Grab the resulting story 
     DomainObject rallyObject = queryResult.Results.First(); 
     HierarchicalRequirement queryStory = (HierarchicalRequirement)rallyObject; 

     // Read In Image Content 
     String imageFilePath = "C:\\Users\\username\\"; 
     String imageFileName = "image1.png"; 
     String fullImageFile = imageFilePath + imageFileName; 
     var imageFileLength = new FileInfo(fullImageFile).Length; 
     Image myImage = Image.FromFile(fullImageFile); 

     Console.WriteLine("Image File Length: " + imageFileLength); 

     // Convert Image to Byte Array format 
     byte[] imageByteArray = ImageToByteArray(myImage, System.Drawing.Imaging.ImageFormat.Png); 
     var imageNumberBytes = imageByteArray.Length; 

     // Create the Attachment Content 
     AttachmentContent attachmentContent = new AttachmentContent(); 
     attachmentContent.Content = imageByteArray; 
     attachmentContent.Workspace = workspace; 
     CreateResult result = service.create(attachmentContent); 
     attachmentContent = (AttachmentContent)result.Object; 

     // Create the Attachment Container, wire it up to the AttachmentContent 
     Attachment myAttachment = new Attachment(); 
     myAttachment.ContentType = "image/png"; 
     myAttachment.Content = attachmentContent; 
     myAttachment.Name = "image1.png"; 
     myAttachment.Size = imageNumberBytes ; 
     myAttachment.SizeSpecified = true; 
     myAttachment.User = user; 
     myAttachment.Artifact = queryStory; 
     myAttachment.Workspace = workspace; 

     // Create the attachment in Rally 
     result = service.create(myAttachment); 
     Console.WriteLine(result.Object); 

    } 

    public static byte[] ImageToByteArray (Image image, System.Drawing.Imaging.ImageFormat format) 
    { 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      // Convert Image to byte[] 
      image.Save(ms, format); 
      byte[] imageBytes = ms.ToArray(); 

      return imageBytes; 
     } 
    } 
} 
+0

谢谢。有用。我所做的不同之处在于创建附件内容,然后创建附件并分配给HierarchicalRequirement对象并创建HierarchicalRequirement。现在我已经将其更改为创建HierarchicalRequirement,然后创建附件,并且它完美地工作。再次感谢。 – user1450091

+0

如果您同意以上回答您的问题,请将答案标记为已接受 - 这有助于在标签论坛中找出已回答的问题。 – 2012-06-17 06:03:07

相关问题