CMS.Ecommerce.IAddressExtensions 已过时
CMS.Ecommerce.IAddressExtensions obsolete
我正在将一些代码从 Kentico 8.2 构建移植到 Kentico 11 网站。我正在迁移的其中一个片段使用了 CMS.Ecommerce.IAddressExtensions
扩展方法 public static string GetStateCode(this IAddress address)
.
当我将其移至我的 Kentico 11 版本时,Visual Studio 发现此扩展方法不再存在:IAddress does not contain a definition for GetStateCode and no extension method could be found.
。我查看了 CMS.Ecommerce DLL 的对象查看器,果然,没有 IAddressExtensions
class 存在。
是否有解决方法来查找 Kentico 11 中给定地址的州代码?
如您所知,Kentico 在从版本 10 升级到 11 时删除了 IAddressExtensions
class。这是 API change.
的页面
根据我的理解,您需要使用下面的 StateInfoProvider
。
IAddress someAddress = /* snip */;
var stateInfo = StateInfoProvider.GetStateInfo(someAddress.AddressStateID);
var stateCode = stateInfo.StateCode;
然后您可以采用相同的逻辑并将其移动到您自己的扩展程序中 class。
public static class IAddressExtensions
{
public static string GetStateCode(this IAddress address)
{
var stateInfo = StateInfoProvider.GetStateInfo(address.AddressStateID);
return stateInfo.StateCode;
}
}
我正在将一些代码从 Kentico 8.2 构建移植到 Kentico 11 网站。我正在迁移的其中一个片段使用了 CMS.Ecommerce.IAddressExtensions
扩展方法 public static string GetStateCode(this IAddress address)
.
当我将其移至我的 Kentico 11 版本时,Visual Studio 发现此扩展方法不再存在:IAddress does not contain a definition for GetStateCode and no extension method could be found.
。我查看了 CMS.Ecommerce DLL 的对象查看器,果然,没有 IAddressExtensions
class 存在。
是否有解决方法来查找 Kentico 11 中给定地址的州代码?
如您所知,Kentico 在从版本 10 升级到 11 时删除了 IAddressExtensions
class。这是 API change.
根据我的理解,您需要使用下面的 StateInfoProvider
。
IAddress someAddress = /* snip */;
var stateInfo = StateInfoProvider.GetStateInfo(someAddress.AddressStateID);
var stateCode = stateInfo.StateCode;
然后您可以采用相同的逻辑并将其移动到您自己的扩展程序中 class。
public static class IAddressExtensions
{
public static string GetStateCode(this IAddress address)
{
var stateInfo = StateInfoProvider.GetStateInfo(address.AddressStateID);
return stateInfo.StateCode;
}
}