プロパティを多く含むビューモデルがあり、hubspotに特定の命名規則が必要であるため、データをhubspotに送信するためのカスタム属性を作成しました。ビューモデルからすべてのプロパティを取得して配列に表示する
public class CreateTrialUserHubspotViewModel {
[HubspotAttribute("firstname")]
[Display(Name = "First Name")]
[StringLength(50)]
[Required]
public string FirstName { get; set; }
[HubspotAttribute("lastname")]
[Display(Name = "Last Name")]
[StringLength(50)]
[Required]
public string LastName { get; set; }
[HubspotAttribute("jobtitle")]
[Display(Name = "Job title")]
[StringLength(50)]
[Required]
public string JobTitle { get; set; }
}
さて、これは私のカスタム属性
[AttributeUsage(AttributeTargets.All)]
public class HubspotAttribute : System.Attribute {
public readonly string hubspotValue;
public HubspotAttribute(string value)
{
this.hubspotValue = value;
}
}
です:彼は特定の出力を入れて、私のカスタム属性が含まれているすべてのプロパティのために、ここにコードがあるとイテレータのいくつかの王を持っている方法を、作成そして、私はviewmodelオブジェクトとcreaを取るメソッドを作成する必要がありますTE私の出力、私はこのようなものになり、いくつかはそれを行う方法について提案する必要があります。
private static RowValidation ValidateRowWithManifest<T>(CreateTrialUserHubspotViewModel trialUser) {
RowValidation validation = new RowValidation();
FieldInfo[] fields = typeof(T).GetPropertiesOfSomeWay;
foreach (DataType field in fields) {
output+=whatINeed
}
return validation;
}
}
が必要な出力は次のようになります:[FIRSTNAME:姓「ペペ」、=「ペレス」、jobtitle」なし"]。そのメソッドを呼び出すだけで、必要なすべてのデータが返されます。あなたはは、JSON文字列のようなに見えるという文字列にプロパティを連結します何かを探しています(そしてそれは、それを処理するためのより良い方法だろう)場合
あなたのデータ出力は意味をなさない。コロンは記号と等しく、キー/値のペアはありません。実際に必要なのは何ですか? –
私はより良い説明をする、私は名前を持っているプロパティを持っていますが、私はすべての小道具のために必要な正確な名前を持っているので、viewmodelオブジェクトを期待するメソッドを必要とするカスタムattrを追加しましたprop.customattr + ":" + viewModelObject.valueであるすべての小道具の文字列を作成します。あなたが今理解したら教えてください –