2017-10-01 158 views
0

자주 묻는 질문이지만 저는 답변을 찾을 수 없습니다. Microsoft Emotion API를 사용하려고합니다. 질문을하기 위해 여기에 일반 키를 사용했습니다. "WindowsFormsApp2은 네임 스페이스이지만 유형을 변경하더라도 사용됩니다."라는 오류 메시지가 나타납니다. 네임 스페이스. 네임 스페이스를보다 적절한 제목으로 변경했지만 코드에 아무 것도 없었음에도 불구하고 WindowsFormsApp2이 형식으로 부적절하게 사용 된 빌드 오류가 발생했습니다. 나는이 문제를 만들고있는 곳을 내가 어디에서 사용하고 있는지 모른다."FormsApp는 네임 스페이스이지만 형식처럼 사용됩니다."

using System.Windows.Forms; 
using System.IO; 
using System.Net.Http.Headers; 
using System.Net.Http; 

namespace WindowsFormsApp2 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      { 
       textBox1.Text = ("Enter the path to a JPEG image file:"); 
       openFileDialog1.ShowDialog(); 
       string imageFilePath = openFileDialog1.FileName; 

       MakeRequest(imageFilePath); 

       textBox1.Text = ("\n\n\nWait for the result below, then hit ENTER to exit...\n\n\n"); 
      } 


      byte[] GetImageAsByteArray(string imageFilePath) 
      { 
       FileStream fileStream = new FileStream(imageFilePath, FileMode.Open, FileAccess.Read); 
       BinaryReader binaryReader = new BinaryReader(fileStream); 
       return binaryReader.ReadBytes((int)fileStream.Length); 
      } 

      async void MakeRequest(string imageFilePath) 
      { 
       var client = new HttpClient(); 

       // Request headers - replace this example key with your valid key. 
       client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "13hc77781f7e4b19b5fcdd72a8df7156"); 

       // NOTE: You must use the same region in your REST call as you used to obtain your subscription keys. 
       // For example, if you obtained your subscription keys from westcentralus, replace "westus" in the 
       // URI below with "westcentralus". 
       string uri = "https://westus.api.cognitive.microsoft.com/emotion/v1.0/recognize?"; 
       HttpResponseMessage response; 
       string responseContent; 

       // Request body. Try this sample with a locally stored JPEG image. 
       byte[] byteData = GetImageAsByteArray(imageFilePath); 

       using (var content = new ByteArrayContent(byteData)) 
       { 
        // This example uses content type "application/octet-stream". 
        // The other content types you can use are "application/json" and "multipart/form-data". 
        content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); 
        response = await client.PostAsync(uri, content); 
        responseContent = response.Content.ReadAsStringAsync().Result; 
       } 

       //A peak at the JSON response. 
       textBox1.Text = (responseContent); 
      } 



     } 

    } 
} 
+1

컴파일러가 가리키는 줄은 무엇입니까? 깨끗한 건축물이 있습니까? 솔루션을 완전히 다시 빌드하고 각 어셈블리가 빌드되도록 설정된 경우 구성 관리자를 확인하십시오. – Waescher

+0

Form1 선언 인 19 행을 가리 킵니다. 이것이 재 구축 오류입니다. 생각해 줘서 고마워. – Xenopod

+1

위의 내용에서이 줄을 잘라 냈습니다. 여기에 줄 번호가 없으며 줄 19에 빈 줄이 있습니다. – Waescher

답변

0

문제점은 실제로 제공된 코드에 없습니다. IDE는 문제가 형식이라고 생각했지만 자동 코드 생성기는 양식을 설정하는 대신 네임 스페이스를 사용했습니다. 오류 양식은 양식의 19 번째 줄에 문제가 있다고 생각했지만 실제로는 program.cs 파일의 시작 부분에있었습니다. 나는 이것이 자주 일어나지 않기를 바랍니다.

2

내가 양식에 InitializeComponent() 후 세미콜론을 싫어하는 것 :

여기 내 코드입니다.

 InitializeComponent(); <--- !!! 
     { 
      textBox1.Text = ("Enter the path to a JPEG image file:"); 
      ... 
     } 
+0

함께 사용하기위한 것은 아닙니다. 포인터를 가져 주셔서 감사합니다. 문제는 실제로 program.cs 파일에 있었지만 IDE는 그것이 그 자체의 형식이라고 생각했습니다. – Xenopod