저는 .NET 3.5 응용 프로그램을 작성 중이며 WCF 서비스와 클라이언트를 모두 제어하고 있습니다.svcutil.exe를 사용하여 여러 WCF 서비스의 프록시 클래스를 만드는 중 오류/경고
저는 데이터 서비스를 공유하기 때문에 여러 서비스를 결합하여 서비스 용 프록시 클래스를 생성하기 위해 svcutil을 사용하고 있습니다.
svcutil /out:ServiceReference.cs /noconfig /namespace:*,Global.ServiceReference
/tcv:Version35 http://localhost:12345/first.svc http://localhost:12345/second.svc
더 심각한 문제는 오류입니다 - 나는 클래스가 " 'Global.ServiceReference.MyClass.MyField'사이의 모호함과 '많이 결과, 두 번 생성되고있어 Global.ServiceReference.MyClass.MyField ''오류. 지금 당장이 클래스는 하나의 서비스에서만 참조되지만, 앞으로는 더 많이 참조 할 것입니다.
두 생성 된 클래스 모양처럼 : 적용된 속성을 기반으로[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.DataContractAttribute(Name="MyClass", Namespace="http://schemas.datacontract.org/2004/07/MyService.Util")]
public partial class MyClass : object, System.Runtime.Serialization.IExtensibleDataObject
{
//fields
}
및
[System.CodeDom.Compiler.GeneratedCodeAttribute("svcutil", "3.0.4506.2152")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.datacontract.org/2004/07/MyService.Util")]
public partial class MyClass
{
// same fields
}
, 이것은 XmlSerializer를 대 DataContractSerializer 함께 할 수있는 뭔가가,하지만 난 돈 그게 무슨 뜻인지 정말로 이해하지 못합니다.
두 번째 문제
이는 svcutil 양식의 경고의 적재량을주고 있다는 것입니다 :Error: There was a validation error on a schema generated during export:
Source:
Line: 1 Column: 10415
Validation Error: The simpleType 'http://schemas.microsoft.com/2003/10/Serialization/:guid' has already been declared.
이러한 오류는 두 가지 매우 간단한 서비스도 발생합니다. 예를 들어, 내가 경고를 얻을 ... 서비스 # 1
[OperationContract]
public string test(int test)
{
return "test";
}
을 가지고 있으며, 서비스 # 2
[OperationContract]
public int Ping(string test)
{
return 23;
}
이있는 경우. 그 중 100 명이 다양한 globalElements, globalAttributes 또는 guid, duration, char 등의 simpleTypes에 대해 불평하고 있습니다.
서비스 중 하나를 void/반환 유형으로 만 변경하면 경고를 받으십시오. 이것이 가장 간단한 가능한 테스트이기 때문에 이것은 정말로 혼란 스럽습니다. 모든 사용자 정의 유형을 사용하지 않고 svcutil은 barfing입니다. 무슨 일이 벌어지고 있는거야?
을가 클래스를 만드는 것 네. 나는 그 경고가 나를 해치고 있다는 것을 알지 못해서, 정말로 문제가되지 않는다면 나는 그들을 무시해도 행복하다. 제 질문의 첫 번째 부분에 나오는 클래스 정의가 중복되어서 지금 당장 나를 죽이고 있습니다. – Clyde
그냥 svcutil.exe를 사용하여 동일한 작업을 수행 할 때 오류가 발생합니다. 출력 파일이 생성된다는 의미에서 실제로 경고 메시지가 나타나지만 화면의 메시지에 " 오류:....!" Superconfusing! – azheglov