Hi, I'm getting the following exception when I try to add a Service
Reference in a Project I built in order to test my WCF Service. The
WCF Service was built using an existing VO layer, which is based on
Active Record base.

The problem seems to be that WCF needs the DataContract attribute, but
the ActiveRecordLinqBase class doesnt have this attribute set, so I
wonder: can Active Record Linq be used with WCF?

The exception I get is:

[code]

An ExceptionDetail, likely created by
IncludeExceptionDetailInFaults=true, whose value is:
System.InvalidOperationException: An exception was thrown in a call to
a WSDL export extension:
System.ServiceModel.Description.DataContractSerializerOperationBehavior
contract: http://tempuri.org/:IService ---->
System.Runtime.Serialization.InvalidDataContractException: Type
'TVGlobo.DAU.VO.MyActiveRecordLinqBase`1[[TVGlobo.DAU.VO.Programa,
TVGlobo.DAU.VO, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null]]' cannot inherit from a type that is not marked
with DataContractAttribute or SerializableAttribute.  Consider marking
the base type
'Castle.ActiveRecord.Linq.ActiveRecordLinqBase`1[[TVGlobo.DAU.VO.Programa,
TVGlobo.DAU.VO, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null]]' with DataContractAttribute or
SerializableAttribute, or removing them from the derived type.
   at
System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper..ctor(Type
type)
   at System.Runtime.Serialization.ClassDataContract..ctor(Type type)
   at
System.Runtime.Serialization.DataContract.DataContractCriticalHelper.CreateDataContract(Int32
id, RuntimeTypeHandle typeHandle, Type type)
   at
System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetDataContractSkipValidation(Int32
id, RuntimeTypeHandle typeHandle, Type type)
   at
System.Runtime.Serialization.DataContract.GetDataContract(RuntimeTypeHandle
typeHandle, Type type, SerializationMode mode)
   at
System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper..ctor(Type
type)
   at System.Runtime.Serialization.ClassDataContract..ctor(Type type)
   at
System.Runtime.Serialization.DataContract.DataContractCriticalHelper.CreateDataContract(Int32
id, RuntimeTypeHandle typeHandle, Type type)
   at
System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetDataContractSkipValidation(Int32
id, RuntimeTypeHandle typeHandle, Type type)
   at
System.Runtime.Serialization.DataContract.GetDataContract(RuntimeTypeHandle
typeHandle, Type type, SerializationMode mode)
   at
System.Runtime.Serialization.DataContractSet.GetDataContract(Type
clrType)
   at
System.Runtime.Serialization.DataContractSet.GetItemTypeDataContract(CollectionDataContract
collectionContract)
   at
System.Runtime.Serialization.DataContractSet.AddCollectionDataContract(CollectionDataContract
collectionDataContract)
   at
System.Runtime.Serialization.DataContractSet.Add(XmlQualifiedName
name, DataContract dataContract)
   at System.Runtime.Serialization.DataContractSet.Add(Type type)
   at System.Runtime.Serialization.XsdDataContractExporter.Export(Type
type)
   at
System.ServiceModel.Description.MessageContractExporter.ExportType(Type
type, String partName, String operationName, XmlSchemaType& xsdType)
   at
System.ServiceModel.Description.DataContractSerializerMessageContractExporter.ExportBody(Int32
messageIndex, Object state)
   at
System.ServiceModel.Description.MessageContractExporter.ExportMessage(Int32
messageIndex, Object state)
   at
System.ServiceModel.Description.MessageContractExporter.ExportMessageContract()
   at
System.ServiceModel.Description.DataContractSerializerOperationBehavior.System.ServiceModel.Description.IWsdlExportExtension.ExportContract(WsdlExporter
exporter, WsdlContractConversionContext contractContext)
   at
System.ServiceModel.Description.WsdlExporter.CallExtension(WsdlContractConversionContext
contractContext, IWsdlExportExtension extension)
   --- End of inner ExceptionDetail stack trace ---
   at
System.ServiceModel.Description.ServiceMetadataBehavior.MetadataExtensionInitializer.GenerateMetadata()
   at
System.ServiceModel.Description.ServiceMetadataExtension.EnsureInitialized()
   at
System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.InitializationData.InitializeFrom(ServiceMetadataExtension
extension)
   at
System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.GetInitData()
   at
System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.TryHandleDocumentationRequest(Message
httpGetRequest, String[] queries, Message& replyMessage)
   at
System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.ProcessHttpRequest(Message
httpGetRequest)
   at
System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.Get(Message
message)
   at SyncInvokeGet(Object , Object[] , Object[] )
   at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object
instance, Object[] inputs, Object[]& outputs)
   at
System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&
rpc)
   at
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&
rpc)
   at
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&
rpc)
   at
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&
rpc)
   at
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&
rpc)
   at
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&
rpc)
   at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean
isOperationContextSet)

[/code]

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to