This MSDN article recommends always to provide a namespace to a ServiceContract and DataContract.
Examples usually have a "schema" prefix and a URI type pattern for the namespace such as
Namespace="urn:WCFEssentials/Samples/2008/12"
instead of a traditional C# namespace with dot-notation such as
Namespace="MyNamespace.MyDataClasses"
What is the suggested format the namespace property? Do we need the schema prefix? Why is this format suggested?
It's an XML Namespace. Those can either be in the urn:
format or they can be URLs.
Here are some additional suggestions from MSDN:
- The namespace can be any string
- but is traditionally a Uri representative of the company or application domain
- and includes a year and month to support versioning scenarios.
- For
DataContracts
, the namespace is often similar to theServiceContract
namespace - but uses using a “schemas” uri section
Example Service Contract with Namespace
[ServiceContract(Namespace="urn:CompanyName/ApplicationName/YYYY/MM")]
[ServiceContract(Namespace="urn:BigFont/EmailSystem/2014/03")]
Example Data Contract with "Schema" Segment in Namespace
[DataContract(Namespace="urn:CompanyName/Schema/YYYY/MM")]
[DataContract(Namespace="urn:BigFont/Schema/2014/03")]
Thank you to John Saunders or getting me started.
来源:https://stackoverflow.com/questions/22516894/what-is-the-format-of-the-datacontractattribute-namespace-property