SORU
30 Temmuz 2010, Cuma


XML 4.0 ile Varlık Çerçevesi 4.0 kullanarak DataContractSerializer Hata

XML üzerinden Varlık çerçevesinden nesnelerin listesini almak için çalışıyorum, ancak aşağıdaki özel durum alıyorum:

Seri hale getirmek http://tempuri.org/:GetAllResult parametresi çalışılırken bir hata oluştu. InnerException mesajdı 'Tür 'System.Data.Entity.DynamicProxies.TestObject_240F2B681A782799F3A0C3afbe4a67a7e86083c3cc4a3939573c5410b408ecce' veri sözleşme adı 'TestObject_240F2B681A782799F3A0C3afbe4a67a7e86083c3cc4a3939573c5410b408ecce:http://schemas.ile datacontract./2004/07/System org.Data.Entity.'Beklenmiyor. DynamicProxies Kullanmayı düşünün bir DataContractResolver eklemek veya herhangi bir tür değil, bilinen statik olarak listenin bilinen türleri - örneğin, kullanarak KnownTypeAttribute öznitelik veya ekleyerek onlara listesinin bilinen türleri geçirilen DataContractSerializer.'. Daha fazla bilgi için InnerException öğesine bakın.

Varlık Çerçevesi ile geçmişte, ama hiç XML kullandım. Bütün varlıkları Varlık Çerçevesi ile oluşturulan ve ile açıklamalı [DataContract] ve [DataMember] bağlıyor. Benim varlıkları hiç Navigasyon Özellikleri var.

Bu GetAll() yöntemi çağrılan soyut bir hizmet sınıfında

[ServiceContract]
public interface IService<T>
{
    [OperationContract]
    List<T> GetAll();
}

Ve ChannelFactory benim uygulama aramak için kullanıyorum:

Binding binding = new NetTcpBinding();
EndpointAddress endpointAddress = new EndpointAddress("net.tcp://localhost:8081/"   typeof(TestObjectService).Name);
using (ChannelFactory<ITestObjectService> channel = new ChannelFactory<ITestObjectService>(binding, endpointAddress))
{
    ITestObjectService testObjectService = channel.CreateChannel();
    testObjects = testObjectService.GetAll();
    channel.Close();
}

Gibi buna ev sahipliği yapıyorum:

Type type = typeof(TestObjectService);
ServiceHost host = new ServiceHost(type,
            new Uri("http://localhost:8080/"   type.Name),
            new Uri("net.tcp://localhost:8081/"   type.Name));
host.Open();

Hata ayıklama kullanırken, nesneleri döndürme başarısız veritabanından nesneleri, ancak bulur.

Yanlış gitmem nereden geldiği hakkında bir fikriniz var mı?

CEVAP
27 ŞUBAT 2012, PAZARTESİ


Code First (EF 4.3) için DbContext API kullanarak yapmak zorunda kaldım:

public class MyClass : DbContext
{
    public MyClass()
    {
        base.Configuration.ProxyCreationEnabled = false;
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Official Android Tips

    Official And

    23 EYLÜL 2009
  • Ben Vivona

    Ben Vivona

    24 Ocak 2010
  • xXGAMERrs_Xx

    xXGAMERrs_Xx

    31 Temmuz 2014