创建服务以根据用户的会话确定字符串格式

时间:2016-05-18 06:00:16

标签: c# servicestack

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

<receiver
            android:name=".GCMBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND" >
            <intent-filter>

                <!-- Receives the actual messages. -->
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <!-- Receives the registration id. -->
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <category android:name="your_package" />
            </intent-filter>
        </receiver>

        <service android:name=".GCMIntentService" />
    </application>

    <!-- GCM connects to Internet Services. -->
    <uses-permission android:name="android.permission.INTERNET" />

    <!-- GCM requires a Google account. -->
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />

    <!-- Keeps the processor from sleeping when a message is received. -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <!-- Creates a custom permission so only this app can receive its messages. -->
    <permission
        android:name="your_package.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

    <uses-permission android:name="your_package.permission.C2D_MESSAGE" />

    <!-- This app has permission to register and receive data message. -->
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <!-- Network State Permissions to detect Internet status -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

我正在考虑创建一个服务,该服务将从用户的会话中读取该位置(我们已定制该位置以存储该位置)。

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

var options = {
    url: url,
    method: 'POST',
    form: {
        client_id : clientId,
        client_secret : client_secret,
        grant_type: 'authorization_code',
        redirect_uri: redirect_uri,
        code: code
    }
};
request(options, function(err,res,body){
    console.log(body);
})

然后我就像这样自动连线:

Account.FormatBankAccountNumber("AU", bsb, accountNumber)

所以现在所有需要它的服务都可以注入AccountUtilityService,它会根据用户的会话自动返回格式,而不必指定用户的位置。

这有效,但只是想看看其他人是否有更好的方法来做这个想法?

1 个答案:

答案 0 :(得分:3)

我想说转换为字符串时明确指定格式实际上更清楚;事实上.NET Framework在任何地方都可以做到。

同样遵循.NET Framework的约定,我将BankAccount转换为一个类(并且可能包含该帐户的国家/地区),并通过覆盖ToString方法将格式化责任留给自己,同时提供默认值格式化,如果没有指定。