国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ WeChat アプレット WeChatの開(kāi)発 asp.net を使用した WeChat パブリック プラットフォームの開(kāi)発 (3) WeChat メッセージのカプセル化とリフレクション割り當(dāng)て

asp.net を使用した WeChat パブリック プラットフォームの開(kāi)発 (3) WeChat メッセージのカプセル化とリフレクション割り當(dāng)て

Feb 23, 2017 pm 02:07 PM
マイクロチャネルパブリックプラットフォーム

前回の記事では、全體的なフレームワークを構(gòu)築し、入口検証を?qū)g裝しました。検証が完了すると、LookMsgType メソッドに渡されます。LookMsgType メソッドは、主に WeChat によって送信されるさまざまなタイプを分解します。ビジネス ロジック層に渡して、さまざまな種類(lèi)のメッセージを処理するには、if または switch を使用します。一般的に、if が 5 つを超える場(chǎng)合は switch を使用することをお?jiǎng)幛幛筏蓼?。外?cè)のスイッチは msgtype を決定します。イベント タイプでは、再度スイッチして特定のイベント タイプ (フォロー、フォロー解除、カスタム メニュー イベントなど) を決定します。この時(shí)點(diǎn)で、WeChat によって送信されたすべてのメッセージと ReadXml が処理されます。上記のコードでは GetModel が使用されており、このメソッドはモデルに値を割り當(dāng)てます。割り當(dāng)て後、その値は処理のためにビジネス ロジック層の対応するメソッドに渡されます。メッセージのカプセル化とモデルへの割り當(dāng)てのメソッドは次のとおりです。 。実裝 1. メッセージのパッケージ化:

WeChat によって送信されたすべてのメッセージをパッケージ化し、DataModel で受信フォルダーと送信フォルダーを構(gòu)築し、その中に対応するメッセージ クラスを確立します。完了すると、以下に示すように、完全な DataModel クラス ライブラリが完成します。

-----メッセージの受信:

テキストメッセージ RText.cs

public?void?LookMsgType(string?msgType)
????????{

????????????#region?判斷消息類(lèi)型
????????????switch?(msgType)
????????????{
????????????????case?"text":
????????????????????RText?mText?=?new?RText();
????????????????????mText?=?ReadXml.GetModel<rtext>(mText,?xmlModel);
????????????????????BLLWei.DoText(dbHome,?mText);//文本消息
????????????????????break;
????????????????case?"image":
????????????????????RImg?mImg?=?new?RImg();
????????????????????mImg?=?ReadXml.GetModel<rimg>(mImg,?xmlModel);
????????????????????BLLWei.DoImg(dbHome,mImg);//圖片
????????????????????break;
????????????????case?"voice":?//聲音
????????????????????RVoice?mVoice?=?new?RVoice();
????????????????????mVoice?=?ReadXml.GetModel<rvoice>(mVoice,?xmlModel);
????????????????????BLLWei.DoVoice(dbHome,mVoice);
????????????????????break;

????????????????case?"video"://視頻
????????????????????RVideo?mVideo?=?new?RVideo();
????????????????????mVideo?=?ReadXml.GetModel<rvideo>(mVideo,?xmlModel);
????????????????????BLLWei.DoVideo(dbHome,?mVideo);
????????????????????break;

????????????????case?"location"://地理位置
????????????????????RLocation?mLocation?=?new?RLocation();
????????????????????mLocation?=?ReadXml.GetModel<rlocation>(mLocation,?xmlModel);
????????????????????BLLWei.DoLocation(dbHome,mLocation);
????????????????????break;
????????????????case?"link"://鏈接
????????????????????RLink?mLink?=?new?RLink();
????????????????????mLink?=?ReadXml.GetModel<rlink>(mLink,?xmlModel);
????????????????????BLLWei.DoLink(dbHome,mLink);
????????????????????break;
????????????????#region?事件
????????????????case?"event":

????????????????????switch?(ReadXml.ReadModel("Event",?xmlModel))
????????????????????{
????????????????????????case?"subscribe":

????????????????????????????if?(ReadXml.ReadModel("EventKey",?xmlModel).IndexOf("qrscene_")?>=?0)
????????????????????????????{
????????????????????????????????RCodeNotSub?mNotSub?=?new?RCodeNotSub();
????????????????????????????????mNotSub?=?ReadXml.GetModel<rcodenotsub>(mNotSub,?xmlModel);
????????????????????????????????BLLWei.DoCodeNotSub(dbHome,mNotSub);//未關(guān)注的新用戶,掃描帶參數(shù)的二維碼關(guān)注
????????????????????????????}
????????????????????????????else
????????????????????????????{
????????????????????????????????RSub?mSub?=?new?RSub();
????????????????????????????????mSub?=?ReadXml.GetModel<rsub>(mSub,?xmlModel);
????????????????????????????????BLLWei.DoSub(dbHome,mSub);//普通關(guān)注
????????????????????????????}
????????????????????????????break;
????????????????????????case?"unsubscribe":
????????????????????????????RUnsub?mUnSub?=?new?RUnsub?();
????????????????????????????mUnSub?=?ReadXml.GetModel<runsub>(mUnSub,?xmlModel);
????????????????????????????BLLWei.DoUnSub(dbHome,mUnSub);//取消關(guān)注
????????????????????????????break;

????????????????????????case?"SCAN":
????????????????????????????RCodeSub?mCodeSub?=?new?RCodeSub();
????????????????????????????mCodeSub?=?ReadXml.GetModel<rcodesub>(mCodeSub,?xmlModel);
????????????????????????????BLLWei.DoCodeSub(dbHome,mCodeSub);//已經(jīng)關(guān)注的用戶掃描帶參數(shù)的二維碼
????????????????????????????break;
????????????????????????case?"LOCATION"://用戶上報(bào)地理位置

????????????????????????????RSubLocation?mSubLoc?=?new?RSubLocation();
????????????????????????????mSubLoc?=?ReadXml.GetModel<rsublocation>(mSubLoc,?xmlModel);

????????????????????????????BLLWei.DoSubLocation(dbHome,?mSubLoc);
????????????????????????????break;
????????????????????????case?"CLICK"://自定義菜單點(diǎn)擊

????????????????????????????RMenuClick?mMenuClk?=?new?RMenuClick();
????????????????????????????mMenuClk?=?ReadXml.GetModel<rmenuclick>(mMenuClk,?xmlModel);
????????????????????????????BLLWei.DoMenuClick(dbHome,?mMenuClk);
????????????????????????????break;
????????????????????????case?"VIEW"://自定義菜單跳轉(zhuǎn)事件

????????????????????????????RMenuView?mMenuVw?=?new?RMenuView();
????????????????????????????mMenuVw?=?ReadXml.GetModel<rmenuview>(mMenuVw,?xmlModel);
????????????????????????????BLLWei.DoMenuView(dbHome,?mMenuVw);
????????????????????????????break;
????????????????????};
????????????????????break;
????????????????#endregion
????????????}
????????????#endregion
????????}</rmenuview></rmenuclick></rsublocation></rcodesub></runsub></rsub></rcodenotsub></rlink></rlocation></rvideo></rvoice></rimg></rtext>
asp.net を使用した WeChat パブリック プラットフォームの開(kāi)発 (3) WeChat メッセージのカプセル化とリフレクション割り當(dāng)てカスタムメニューをクリック RMenuClick.cs
public?class?RText
????{
????????public?string?ToUserName?{?get;?set;?}//?開(kāi)發(fā)者微信號(hào)
????????public?string?FromUserName?{?get;?set;?}//?用戶號(hào)(OpenID)
????????public?long?CreateTime?{?get;?set;?}//?創(chuàng)建時(shí)間
????????public?string?MsgType?{?get;?set;?}?//消息類(lèi)型
????????public?string?Content?{?get;?set;?}//內(nèi)容
????????public?long?MsgId?{?get;?set;?}//消息ID

????}

他も同様なので、一つずつ記載しません。 。

-----メッセージを送信する

テキスト メッセージを送信する SText.cs

public?class?RMenuClick
????{
????????public?string?ToUserName?{?get;?set;?}//?開(kāi)發(fā)者微信號(hào)
????????public?string?FromUserName?{?get;?set;?}//?用戶號(hào)(OpenID)
????????public?long?CreateTime?{?get;?set;?}//?創(chuàng)建時(shí)間
????????public?string?MsgType?{?get;?set;?}?//消息類(lèi)型

????????public?string?Event?{?get;?set;?}//事件類(lèi)型
????????public?string?EventKey?{?get;?set;?}//事件key
????????
????}

グラフィック メッセージを送信する SNews.cs

public?class?SText
????{



????????public?string?ToUserName?{?get;?set;?}//?用戶號(hào)(OpenID)
????????public?string?FromUserName?{?get;?set;?}//?開(kāi)發(fā)者微信號(hào)

????????public?long?CreateTime?{?get;?set;?}//?創(chuàng)建時(shí)間

????????public?string?MsgType?{?get?{?return?"text";?}?}?//消息類(lèi)型

????????public?string?Content?{?get;?set;?}//內(nèi)容


????}

SText

グラフィック メッセージを送信するのは、グラフィック メッセージに返信するためです。 WeChat では、特定のグラフィック コンテンツが複數(shù)(最大 10 個(gè))あるため、個(gè)別の ArticlesModel が存在します。 次の記事では、グラフィック メッセージの送信について説明します。

2. リフレクションを通じてモデルに値を割り當(dāng)てる

前の記事の冒頭で、XML を解析する方法がすでに説明されており、メッセージは手動(dòng)でカプセル化されます。通常のアプローチは、値を割り當(dāng)てるコードを手動(dòng)で記述することです。対応するモデルが使用されるたびに、LookMsgType メソッドのメッセージへのすべての割り當(dāng)てで同じメソッド ReadXml.GetModel が使用されます。ここでは Reflection が使用され、メソッドは次のとおりです。使用するメッセージクラス、入り口でxmlmodelを渡す WeChatから送信された解析済みのxml情報(bào)が入ってきます。 これにより、毎回手動(dòng)でコードを書(shū)いて値を代入する必要がありません。

この記事では、lookmsgtype メソッドの実裝、メッセージのカプセル化とリフレクション割り當(dāng)ての実裝、そしてビジネス ロジック層での処理と具體的な実裝について説明します...

その他の asp.net 開(kāi)発 WeChat パブリック プラットフォーム (3 ) 関連記事についてWeChat メッセージのカプセル化とリフレクション割り當(dāng)てについては、PHP 中國(guó)語(yǔ) Web サイトに注意してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類(lèi)リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)