방법: Azure In-Role Cache에서 사용자 지정 직렬 변환기 사용
중요
모든 새 개발에서는 Azure Redis Cache를 사용하는 것이 좋습니다. Azure Cache 제품을 선택하는 방법에 대한 현재 설명서 및 지침 은 나에게 적합한 Azure Cache 제품을 참조하세요.
Microsoft Azure Cache는 개체를 캐시에 배치하기 전에 직렬화하고 캐시에서 검색된 개체를 역직렬화합니다. 내부적으로 직렬화는 NetDataContractSerializer 클래스에 의해 처리됩니다. 이 항목에서는 캐시를 사용하는 Azure 애플리케이션에서 사용할 사용자 지정 serialization 클래스를 만들고 사용하는 방법을 설명합니다.
팁
알려진 형식의 직렬화를 최적화하면 성능을 향상시킬 수 있습니다.
사용자 지정 직렬화 클래스를 만들려면
먼저 캐시 를 사용하도록 개발 환경을 준비 합니다.
IDataCacheObjectSerializer에서 파생되는 클래스를 만듭니다.
이 인터페이스에서 직렬화 및 역직렬화라는 두 가지 메서드를 구현합니다.
class MySerializer : IDataCacheObjectSerializer
{
public object Deserialize(System.IO.Stream stream)
{
object returnObject = null;
// Deserialize the System.IO.Stream 'stream' from
// the cache and return the object.
return returnObject;
}
public void Serialize(System.IO.Stream stream, object value)
{
// Serialize the object 'value' into the System.IO.Stream 'stream'
// which will then be stored in the cache.
}
}
구성 파일을 사용하여 사용자 지정 직렬 변환기를 지정하려면
사용자 지정 직렬 변환기의 코드를 프로젝트에 추가하거나 사용자 지정 직렬 변환기를 구현하는 어셈블리에 대한 참조를 추가합니다.
애플리케이션 구성 파일에서 dataCacheClient 섹션 내에 serializationProperties 요소를 추가합니다.
serializationProperties 요소 내에서 serializer 특성을 "CustomSerializer"에 할당합니다. serializer를 구현하는 클래스에 customSerializerType 특성을 할당합니다.
다음 예제에서는 응용 프로그램 구성 파일을 사용하여 사용자 지정 직렬 변환기 MyNamespace.MySerializer
를 지정하는 방법을 보여 줍니다.
<dataCacheClient>
<serializationProperties serializer="CustomSerializer"
customSerializerType="MyNamespace.MySerializer, MyAssembly" />
<!-- Other dataCacheClient Elements, such as hosts -->
</dataCacheClient>
코드를 사용하여 사용자 지정 직렬 변환기를 지정하려면
사용자 지정 직렬 변환기의 코드를 프로젝트에 추가하거나 사용자 지정 직렬 변환기를 구현하는 어셈블리에 대한 참조를 추가합니다.
생성자를 사용하여 DataCacheObjectSerializerType.CustomSerializer 옵션 및 serializer 클래스의 새 인스턴스를 지정하여 DataCacheSerializationProperties 개체를 만듭니다.
이 개체를 DataCacheFactoryConfiguration.SerializationProperties 속성에 할당하고 해당 DataCacheFactoryConfiguration 개체를 사용하여 새 DataCacheFactory를 구성합니다.
다음 예제에서는 코드를 사용하여 사용자 지정 직렬 변환기 MyNamespace.MySerializer
를 지정하는 방법을 보여 줍니다.
DataCacheFactoryConfiguration configuration = new DataCacheFactoryConfiguration();
configuration.SerializationProperties =
new DataCacheSerializationProperties(DataCacheObjectSerializerType.CustomSerializer,
new MyNamespace.MySerializer());
// Assign other DataCacheFactoryConfiguration properties...
// Then create a DataCacheFactory with this configuration
DataCacheFactory factory = new DataCacheFactory(configuration);
권장 사항
캐시에서 사용자 지정 직렬 변환기를 사용하는 경우 해당 캐시의 모든 클라이언트가 캐시 내의 공유 개체에 액세스할 때 동일한 버전의 사용자 지정 직렬 변환기를 사용해야 합니다.