servicestack,C#,servicestack" /> servicestack,C#,servicestack" />

C# 创建服务以根据用户';会议

C# 创建服务以根据用户';会议,c#,servicestack,C#,servicestack,我需要根据用户的国家设置银行账号的格式。因此,不是每次需要值时都传递位置,例如: Account.FormatBankAccountNumber("AU", bsb, accountNumber) 我想创建一个服务,从用户的会话中读取位置(我们已经定制了存储位置的会话) 到目前为止,这就是我所拥有的: public class AccountUtilityService : Service { public string FormatBankAccountNumber(string b

我需要根据用户的国家设置银行账号的格式。因此,不是每次需要值时都传递位置,例如:

Account.FormatBankAccountNumber("AU", bsb, accountNumber)
我想创建一个服务,从用户的会话中读取位置(我们已经定制了存储位置的会话)

到目前为止,这就是我所拥有的:

public class AccountUtilityService : Service
{
    public string FormatBankAccountNumber(string bsb, string accountNumber, bool obfuscate = false)
    {
        var session = base.SessionAs<CustomAuthSession>();

        if (obfuscate) {
            accountNumber = accountNumber.ObfuscationSensitiveInformation();
        }
        if (session.Region == RegionCodes.AU) {
            return string.Format("({0}) - {1}", bsb, accountNumber);
        }
        return accountNumber;
    }
}
公共类AccountUtilityService:服务
{
公共字符串格式BankAccountNumber(字符串bsb,字符串accountNumber,bool obfuscate=false)
{
var session=base.SessionAs();
如果(模糊){
accountNumber=accountNumber.ObfuscationsSensitiveInformation();
}
if(session.Region==RegionCodes.AU){
返回string.Format(({0})-{1}),bsb,accountNumber;
}
返回帐号;
}
}
然后,我只需要像这样自动连接它:

container.RegisterAutoWired<AccountDetailUtilityService>().ReusedWithin(Funq.ReuseScope.None);
container.RegisterAutoWired().ReusedWithin(Funq.ReuseScope.None);
因此,现在所有需要此功能的服务都可以注入AccountUtilityService,它将根据用户的会话自动返回格式,而无需指定用户的位置


这是可行的,但只是想看看其他人是否有更好的方法来实现这一点?

我想说,在转换为字符串时明确指定格式实际上更清晰;事实上.NETFramework在任何地方都能做到这一点


同样遵循.NET Framework的惯例,我会将BankAccount转换为一个类(其中可能包括帐户的国家/地区),并通过重写
ToString
方法将格式化责任留给自己,同时如果未指定格式,则提供默认格式。

只是想知道,难道BSB和帐号只在澳大利亚才有意义吗?这不会使BankAccountNumber格式变得非常通用。你是对的,我想这可能是其中的一种逻辑。这个例子可能不是一个很好的例子。是的,这是我的方向,但我想知道是否有更好的方法。干杯