0

私はこれを初めて見ています。これが私が持っているものです

セッションから顧客を取得します。ここで、私の国コードは 2 文字のコードです

var selCustomer = SessionService.GetItem<Customer>(SessionKeys.SelectedCustomer);

非常に特殊な用途のために、2 文字の国コードを 3 文字の国コードに変換する必要があります。

var customerAddress = GeographyServiceInstance.FixAddresss(selCustomer.CustomerAddress, true);

この段階で、情報を確認すると、selCustomer.CustomerAddress、customerAddress、さらにはセッション内の顧客が 3 文字のコードに変更されています。ここでセッションを設定していないのに、なぜ上書きされているのですか?

session と selCustomer.CustomerAddress が上書きされない唯一の方法は、

var customer = 
    SessionService.GetItem<Customer>(SessionKeys.SelectedCustomer);

// turn customer address into 3 letter country code, 
// hard way, otherwise original object and session 
// address are being overwritten
Address customerAddress = null;
if (customer.CustomerAddress != null)
{
    customerAddress = new Address
    {
        AddressId = customer.CustomerAddress.AddressId,
        AddressLine1 = customer.CustomerAddress.AddressLine1,
        AddressLine2 = customer.CustomerAddress.AddressLine2,
        City = customer.CustomerAddress.City,
        CountryCode = customer.CustomerAddress.CountryCode,
        CountryInfo = customer.CustomerAddress.CountryInfo,
        StateCode = customer.CustomerAddress.StateCode,
        StateInfo = customer.CustomerAddress.StateInfo
    };
}
customerAddress =
    GeographyServiceInstance.FixAddress(customerAddress, true);
4

0 に答える 0