C# で記述された例には、次のパターンが含まれています。

C# の例

システムを使用する。
を使用します。
ジェネリックを使用します。
System.IO を使用する。
System.Net を使用する。
を使用します。
シリアル化を使用します。
名前空間の例
{
クラスプログラム
{
クラスオペレイショ結果
{
パブリック bool 成功 { 取得; 設定; }
パブリック文字列 結果 { 取得; 設定; }
パブリックオーバーライド文字列 ToString()
{
文字列を返します {0} 。結果: {1} “, 成功, 結果);
}
}
クラス エラー結果
{
パブリック bool 成功 { 取得; 設定; }
パブリック文字列 [] エラー説明 { 取得; 設定; }
パブリックオーバーライド文字列 ToString()
{
を返します。
}
}
クラスプラットフォーム
{
パブリック int ID { 取得; 設定; }
パブリック文字列名 { 取得; 設定; }
パブリック bool 使用可能 { 取得; 設定; }
パブリックオーバーライド文字列 ToString()
{
文字列を返します {0} 。名前: {1} ;利用可能: {2} “, ID, 名前, 利用可能);
}
}
クラスモニター
{
パブリック int ID { 取得; 設定; }
パブリック文字列名 { 取得; 設定; }
パブリック bool 使用可能 { 取得; 設定; }
パブリック bool IsDeleted { 取得; 設定; }
パブリック bool IsPrivate { 取得; 設定; }
パブリックオーバーライド文字列 ToString()
{
文字列を返します {0} 。名前: {1} ;利用可能: {2} ;削除済み: {3} ;IsPrivate: {4} “,
ID、名前、利用可能、削除、IsPrivate);
}
}
クラスウィークリーインターバル
{
パブリック文字列 [] 日 { 取得; 設定; }
パブリック int From_Min { 取得; セット; }
パブリック int To_Min { 取得; セット; }
パブリック bool 含まれる { 取得; セット; }
パブリックオーバーライド文字列 ToString()
{
文字列を返します。フォーマット(“日: [{0}];From_Min: {1} (時間: {4});To_Min: {2} (時間: {5});含ま: {3}”,
文字列.Join(“,”,日),From_Min,To_Min,含まれている,タイムスパン.FromMinutes(From_Min),タイムスパン.FromMinutes(To_Min));
}
}
クラス日付時間間隔
{
パブリックロング長いから { 取得; セット; }
パブリック ロング To { 取得; セット; }
パブリックオーバーライド文字列 ToString()
{
文字列を返します {0} {2} 。To: {1} (時間: {3} )”,
から、へ、へ、Unix ベースタイム.アドミリ秒(から)、Unix ベースタイム.アドミリ秒(To)。
}
}
クラス割り当て先情報
{
概要
読み取り専用
/概要
パブリック int[] デバイス { 取得; 設定; }
概要
読み取り専用
/概要
パブリック int[] Notification_Groups { 取得; 設定; }
パブリックオーバーライド文字列 ToString()
{
文字列を返します。フォーマット(“デバイス: {0} [])。Notification_Groups: {1} [ ] ,
「」、”,デバイス.選択(id = > id.ToString())。をクリックします。
「」「」Notification_Groups選択(id = > id.ToString())。を配列())。
}
}
クラススケジューラ
{
パブリック int ID { 取得; 設定; }
パブリック文字列名 { 取得; 設定; }
パブリック文字列説明 { 取得; 設定; }
パブリックウィークリーインターバル[] Weekly_Intervals { 取得; 設定;
パブリック日付時間間隔[] Date_Time_Intervals { 取得; 設定;
パブリック割り当て先情報 Assigned_To { 取得; 設定; }
パブリックオーバーライド文字列 ToString()
{
文字列を返します。 {0};名前: {1};形容: {2};Weekly_Intervals: [{3}];Date_Time_Intervals: [{4}];割り当て先情報: {5}”,
ID、名前、説明、
文字列.Join(“”,”, Weekly_Intervals.Select(wi = > wi.文字列())。をクリックします。
「」「Date_Time_Intervals選択(dti = > dti)。文字列())。をAssigned_To) )
}
}
クラスサイト通知グループ
{
パブリック int ID { 取得; 設定; }
パブリック int Time_Shift_Min { 取得; セット; }
}
クラス通知
{
パブリック bool E_Mail_Flag { 取得; セット; }
パブリック文字列E_Mail_Address { 取得; 設定; }
パブリック int E_Mail_TimeInterval_Min { 取得; セット; }
パブリック bool WL_Device_Flag { 取得; セット; }
パブリック文字列 WL_Device_Email_Address { 取得; 設定; }
パブリック int WL_Device_TimeInterval_Min { 取得; セット; }
パブリック bool Phone_Flag { 取得; セット; }
パブリック文字列Phone_Area_Code { 取得; 設定; }
パブリック文字列Phone_Phone { 取得; 設定; }
パブリック int Phone_TimeInterval_Min { 取得; セット; }
パブリック bool SMS_Flag { 取得; セット; }
パブリック文字列SMS_Phone { 取得; 設定; }
パブリック int SMS_TimeInterval_Min { 取得; セット; }
パブリック bool Script_Flag { 取得; セット; }
パブリック文字列Script_Batch_File_Name { 取得; 設定; }
パブリック int Script_TimeInterval_Min { 取得; セット; }
パブリック int SNMP_TimeInterval_Min { 取得; セット; }
パブリックサイト通知グループ[] Notification_Groups { 取得; 設定;
}
クラスサーバービューデバイス
{
パブリック int ID { 取得; 設定; }
パブリック int Platform_Id { 取得; セット; }
パブリック文字列名 { 取得; 設定; }
パブリック int Number_Of_Tasks { 取得; セット; }
パブリック文字列Status_Description { 取得; 設定; }
パブリック bool 延期 { 取得; 設定; }
パブリック bool Send_Uptime_Alert { 取得; セット; }
パブリック int Owner_Device_Id { 取得; セット; }
パブリック int 頻度 { 取得; 設定; }
パブリック int Filter_Id { 取得; 設定; }
パブリック int Scheduler_Id { 取得; セット; }
パブリック通知通知 { 取得; 設定; }
パブリック bool Avoid_Simultaneous_Checks { 取得; セット; }
パブリック bool False_Positive_Check { 取得; セット; }
パブリック int Alert_Silence_Min { 取得; セット; }
パブリック int[] 場所 { 取得; 設定; }
}
クラス タスクタイプ
{
パブリック int ID { 取得; 設定; }
パブリック文字列名 { 取得; 設定; }
}
クラス名値ペア
{
パブリック文字列名 { 取得; 設定; }
パブリック文字列 値 { 取得; 設定; }
}
クラス HTTP タスク
{
パブリック int Device_Id { 取得; セット; }
パブリック int ID { 取得; 設定; }
パブリック int Task_Type_Id { 取得; セット; }
パブリック文字列名 { 取得; 設定; }
パブリック int タイムアウト { 取得; 設定; }
パブリック文字列要求型 { 取得; 設定; }
パブリック文字列 URL { 取得; 設定; }
パブリック文字列 キーワード1 { 取得; 設定; }
パブリック文字列 キーワード2 { 取得; 設定; }
パブリック文字列 キーワード 3 { 取得; 設定; }
パブリック文字列 ユーザー名 { 取得; 設定; }
パブリック文字列 ユーザーパス { 取得; 設定; }
パブリック bool フルページダウンロード { 取得; 設定; }
パブリック bool Download_Html { 取得; セット; }
パブリック bool Download_Frames { 取得; セット; }
パブリック bool Download_StyleSheets { 取得; セット; }
パブリック bool Download_Scripts { 取得; セット; }
パブリック bool Download_Images { 取得; セット; }
パブリック bool Download_Objects { 取得; セット; }
パブリック bool Download_Applets { 取得; セット; }
パブリックブール Download_Additional { 取得; セット; }
パブリック名を設定します。[] GetParams { 取得; 設定;
パブリック名値ペア[] ポストパラム { 取得; 設定; }
パブリック名値ペア[] ヘッダーパラム { 取得; 設定;
文字列 PrepareScript { 取得; 設定; }
}
列挙型の要求メソッド
{
取得
投稿
}
プライベート静的クッキーコンテナコンテナ。
パブリック静的読み取り専用の日時 UnixBaseTime = 新しい日時(1970、1、1、0、0、0、0)。
要求機能の設定
プライベート静的文字列要求(文字列アクション、リクエストメソッドリクエストタイプ、文字列データ)
{
要求要求 = WebRequest.Create(“https://api.dotcom-monitor.com/config_api_v1/” + アクション)。
依頼。メソッド = 要求タイプ.ToString();
((HttpWebRequest) 要求)。クッキーコンテナ = コンテナ;
if (要求タイプ == RequestMethod.POST)
{
文字列 postData = データ。
if (ポストデータ.長 > さ 0)
{
バイト[] バイト配列 = エンコーディング.UTF8.GetBytes(ポストデータ);
依頼。コンテンツタイプ = “アプリケーション/json”;
依頼。長さ = バイト配列.長さ;
ストリームデータストリーム = 要求。要求ストリームを取得します。
書き込み(バイト配列、0、バイト配列.長さ)。
}
然も無くば
{
依頼。コンテンツの長さ = 0;
}
}
試みる
{
(var応答 = 要求)。応答を取得())
{
(varストリーム = 応答)。応答ストリーム()
{
if (ストリーム != null)
{
(var リーダー = 新しいストリームリーダー(ストリーム)) を使用する
{
読者を返します。読み取り終わり();
}
}
}
}
}
キャッチ (例外 ex)
{
(var ストリーム = ex.応答します。
{
(var リーダー = 新しいストリームリーダー(ストリーム)) を使用する
{
新しい例外を投げる(リーダー。読み取り終わり());
}
}
}
文字列を返します。
}

静的ボイド Main()
{
証明書エラーを無視する
デリゲート { 戻り値が true; };
クッキーコンテナを初期化する
コンテナ = 新しいクッキーコンテナ()
初期化 javascript シリアライザー
var シリアライザー = 新しい Java スクリプトシリアライザー()
ログイン
書き込みライン(“==ログイン==”)。
文字列の結果Str;
試みる
{
結果Str = 要求(“ログイン”、RequestMethod.POST、
シリアライザー。シリアライズ(
新しい {
ユーザー名 = “1”、
パスワード = “1”
}
));
var 結果 = シリアライザー。<オペラシオの結果を逆シリアル化 > します。
書き込みライン (結果.文字列());
}
キャッチ (例外 ex)
{
var err = シリアライザー。<エラー結果を逆シリアル化 > する (ex.メッセージ;
書き込みライン(エラー。文字列());
}
プラットフォームを取得する
コンソール.WriteLine(“==取得プラットフォーム=”)。
IEnumerable < > プラットフォーム プラットフォーム = null;
試みる
{
結果 Str = 要求(“プラットフォーム”、要求メソッド.GET、文字列.空)。
プラットフォーム = シリアライザー。デシリアライズ < プラットフォーム[] > (resultStr);
}
キャッチ(例外ex)
{
var err = シリアライザー。<エラー結果を逆シリアル化 > する (ex.メッセージ;
書き込みライン(エラー。文字列());
}
foreach (プラットフォーム内の var プラットフォーム)
{
書き込みライン(プラットフォーム);
}
プラットフォーム別にデバイスを取得する
コンソール.WriteLine(“===プラットフォームによってデバイスを取得する)。;
を指定する必要があります。
foreach (プラットフォーム内の var プラットフォーム。どこ(p = > p.利用可能))
{
結果Str = 要求(文字列.フォーマット(“デバイス {0} /”,プラットフォーム)。名前)、要求メソッド.GET、文字列.空)。
var ds = シリアライザー。<int[] を逆シリアル化 > します。
foreach (var id (ds)
{
(svDeviceId == 0 &&プラットフォーム)。ID == 1)
{
id;
}
コンソール.WriteLine(” {0} – {1} “,プラットフォーム。名前、id);
}
}
ID でサーバー ビュー デバイスを取得します。
書き込みライン(“===id==”でデバイスを取得)。
結果 Str = 要求(デバイス {0} /”svDeviceId)、要求メソッド.GET、文字列.空)。
var デバイス = シリアライザー。を逆シリアル化 < します > 。
デバイスの編集
書き込みライン(“==編集デバイス==”)。
デバイス。名前 = デバイス。名前 + “(編集済み)”
試みる
{
結果Str = 要求(文字列.フォーマット(“デバイス {0} /”、デバイス。ID)、RequestMethod.POST、
シリアライザー。シリアライズ(デバイス);
var 結果 = シリアライザー。<オペラシオの結果を逆シリアル化 > します。
書き込みライン (結果.文字列());
}
キャッチ (例外 ex)
{
var err = シリアライザー。<エラー結果を逆シリアル化 > する (ex.メッセージ;
書き込みライン(エラー。文字列());
}
モニターを取得する
コンソール.WriteLine(“==取得モニター=”)。
IEnumerable < > モニター = シリアライザー。デシリアライズ < モニター[] > (要求(文字列.フォーマット(“場所 {0} /”,デバイス。Platform_Id)
メソッド.GET、文字列.空)
foreach (モニター内の var モニター)
{
コンソール.ライトライン(モニター);
}
周波数を取得する
書き込みライン(“==取得周波数=”)。
var 周波数 = シリアライザー。逆シリアル化 < int[] > (要求(文字列.フォーマット(“周波数 {0} /”、デバイス。Platform_Id)
メソッド.GET、文字列.空)
フォーリーチ(周波数のvar周波数)
{
書き込みライン(周波数);
}
通知先グループを取得する
コンソール.WriteLine(“==通知グループを取得=”)。
var ngs = シリアライザー。逆シリアル化 < int[] > (要求(“グループ”、要求メソッド.GET、文字列.空))。
フォルリーチ (ngs の var ng)
{
書き込みライン(ng);
}
新しいデバイスを作成する
書き込みライン(“==デバイスの作成=”)。
デバイス = 新しいサーバービューデバイス
{
Platform_Id = プラットフォーム。シングル(p = > p.名前.ToLower()== “サーバービュー”)。身分証明書
名前 = “新しいデバイス”
周波数 = 周波数[0]、
延期 = 真、
場所 = モニター。どこで > (m.= 使用可能 && &!m.IsPrivate && (m.Id%2 == 0))。選択(m = > m.Id)。を実行します。
Avoid_Simultaneous_Checks = 真、
通知 = 新しい通知
{
E_Mail_Flag = 偽、
Pager_Flag = 偽、
Phone_Flag = 偽、
SMS_Flag = 偽、
Script_Flag = 偽、
WL_Device_Flag = 偽、
Notification_Groups = ngs。テイク(1)。を選択します(ng = > 新しいサイト通知グループ {ID = ng, Time_Shift_Min = 0 /*0 = イミディエイト*/})。を実行します。
}
};
新しいデバイス Id = 0;
試みる
{
結果Str = 要求(“デバイス?動詞=PUT”,RequestMethod.POST、
シリアライザー。シリアライズ(デバイス);
var 結果 = シリアライザー。<オペラシオの結果を逆シリアル化 > します。
新しいデバイス ID = int。解析(結果。結果;
書き込みライン (結果.文字列());
}
キャッチ (例外 ex)
{
var err = シリアライザー。<エラー結果を逆シリアル化 > する (ex.メッセージ;
書き込みライン(エラー。文字列());
}
新しい HTTP タスクの追加
コンソール.WriteLine(“===HTTPタスクを作成する=”)。
結果Str = 要求(“タスクタイプ/” + デバイス)。Platform_Id、要求メソッド.GET、文字列.空)。
var tts = シリアライザー。タスクの種類を逆シリアル化 < [] > (resultStr)。
var httpTT = tts。シングル(tt = > tt)。名前.ToLower()==”http”;
var タスク = 新しい HTTP タスク
{
Device_Id = 新しいデバイスID、
Task_Type_Id = httpTT.Id、
名前 = “新しい HTTP タスク”
タイムアウト = 100500、
要求タイプ = “GET”
URL = “amazon.de”
};
試みる
{
結果Str = 要求(“タスク?動詞=PUT”, RequestMethod.POST、
シリアライザー。シリアライズ(タスク));
var 結果 = シリアライザー。<オペラシオの結果を逆シリアル化 > します。
書き込みライン (結果.文字列());
}
キャッチ (例外 ex)
{
var err = シリアライザー。<エラー結果を逆シリアル化 > する (ex.メッセージ;
書き込みライン(エラー。文字列());
}

スケジューラを取得する
コンソール.WriteLine(“==取得スケジューラ=”)。
var ss = シリアライザー。逆シリアル化 < int[] > (要求(“スケジューラ”、要求メソッド.GET、文字列.空))。
フォルリーチ (ss 内の var s)
{
シリアライザー。スケジューラを逆シリアル化 < > します (要求(“スケジューラ/” + s,要求メソッド.GET、文字列.Empty))。
}
新しいスケジューラを作成する
コンソール.WriteLine(“==新しいスケジューラを作成する=”)。
var スケジューラ = 新しいスケジューラ
{
名前 = “新規”
説明 = “descr”
Date_Time_Intervals = 新しい[] {
新しい日付時間間隔
{
から = (長い) (新しい日時(2013、2、2、2、0、0、0) – UnixBaseTime)。合計ミリ秒、
To = (long) (新しい日時(2013、2、2、2、2、30、0、0) – UnixBaseTime)。合計ミリ秒、
}
},
Weekly_Intervals = 新しい[] {
新しい週単位間隔
{
日 = 新しい [] {“mo”、”tu”、”sa”、
From_Min = (int) 新しいタイムスパン(7, 0, 0)。合計分,
To_Min = (int) 新しいタイムスパン(13, 0, 0)。合計分,
含まれる = 偽
}
}
};
試みる
{
結果Str = 要求(“スケジューラ?動詞=PUT”,RequestMethod.POST、
シリアライザー。シリアライズ(スケジューラ);
var 結果 = シリアライザー。<オペラシオの結果を逆シリアル化 > します。
書き込みライン (結果.文字列());
}
キャッチ (例外 ex)
{
var err = シリアライザー。<エラー結果を逆シリアル化 > する (ex.メッセージ;
書き込みライン(エラー。文字列());
}
コンソール.リードキー();
}
}
}