1

http://code.google.com/p/lokad-cloud/wiki/Serialization

Lokad.Cloudのデフォルトのシリアル化を交換しようとしています。私は次のことに沿って何かを試しました:

public class ServiceWebModule : Module
{
    public string AzureConnectionString { get; set; }

    protected override void Load(ContainerBuilder builder)
    {
        builder.Register(CloudStorageProviders).InstancePerLifetimeScope();
    }

    CloudStorageProviders CloudStorageProviders(IComponentContext c)
    {
        return CloudStorage
            .ForAzureConnectionString(AzureConnectionString)
            .WithDataSerializer(new SuperDuperJsonSerializer())
            .BuildStorageProviders();
    }
}

このモジュールは、lokadクラウドストレージモジュールが読み込まれた後に読み込まれ、AzureのCloudStorageProvidersの実装のランタイムを自分のものでオーバーライドしようとしています。どんなガイダンスも役に立ちます。ありがとうございました。

4

1 に答える 1

0

lokadソースを見てくださいStorageModule

builder.Register(BlobStorageProvider);
builder.Register(QueueStorageProvider).OnRelease(queues => queues.AbandonAll());
builder.Register(TableStorageProvider);
builder.Register(CloudStorageProviders).OnRelease(storage => storage.QueueStorage.AbandonAll());

登録されているタイプに加えてCloudStorageProviders、特定のプロバイダー(、、ITableStorageProviderおよびIBlobStorageProvider)のIQueueStorageProviderそれぞれも登録されます。既存の登録を完全に上書きするには、これらすべてを明示的に登録する必要があります。

于 2012-05-28T12:12:36.323 に答える