1

WCFサービスがあります。

フィールド(たとえばName)があり、クライアントはこれをFirstName(スペースの前の前半)とLastName(スペースの後のすべて)に変更したいと考えています。

このWCFサービスはさまざまなアプリケーションで使用されており、既存のクライアントを壊すことなくこれを実現したいと考えています。

データベースに存在しない場合でも、2つの新しいデータメンバーを追加できますか?これらの2つの新しいデータメンバーの値はどのように設定または取得されますか?

ありがとう

4

2 に答える 2

5

このようなものが機能するはずです:

DECLARE @FullName VARCHAR(255)
SET @FullName = 'James Johnson'

SELECT SUBSTRING(@FullName, 1, CHARINDEX(' ', @FullName) - 1) AS FirstName,
       SUBSTRING(@FullName, CHARINDEX(' ', @FullName) + 1, LEN(@FullName)) AS LastName

上記の出力は次のようになります。

名前苗字
----------------------------
ジョン・ドウ

コード内の名前を解析するには、以下のコード例が名前と名前に対して正常に機能するはずです。プレフィックス、サフィックス、ミドルネームを処理できる堅牢なパーサーが必要な場合は、この記事を参照してください。

var names = ("James Johnson").Split(Convert.ToChar(" "));
if (names.Length > 0)  
    Response.Write(string.Format("First: {0}, Last: {1}", names[0], names[1]));
于 2012-04-11T15:05:39.547 に答える
1

新しいデータメンバーが文字列の場合、これで問題ありません。古いバージョンのサービスクライアントでは、追加のデータメンバーは無視されます。

この関連する質問を参照してください: WCFデータコントラクトにフィールドを追加するとクライアントが壊れますか?

于 2012-04-11T15:06:20.983 に答える