第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何僅將方法參數(shù)中對象的某些屬性傳遞給 Fody/MethodTimer Interceptor

如何僅將方法參數(shù)中對象的某些屬性傳遞給 Fody/MethodTimer Interceptor

C#
叮當(dāng)貓咪 2022-11-21 20:27:48
我想通過Fody/MethodTimer記錄我的方法的執(zhí)行時間。我不能只傳遞我的方法參數(shù)的某些屬性(它們是類類型)。我的方法:[Time("'{obj.EventId}'")]private static void testFody(TestClass obj){     for (int i = 0; i < 100; i++)     {          Console.WriteLine($"This is : {i }");     }}public class TestClass{    public Guid EventId { get; set; }    public string prop1 { get; set; }    public int prop2 { get; set; }}當(dāng)我運行此代碼時,出現(xiàn)以下錯誤:無法處理“System.Void TestCurrentEPCIS.Program::testFody(TestCurrentEPCIS.TestClass)”,因為格式使用的“obj.EventId”不可用作方法參數(shù)。當(dāng)我如下傳遞對象本身時,它會將 obj.ToString() 傳遞給 Interceptor 類:[Time("'{obj}'")]private static void testFody(TestClass obj)如何將 obj 參數(shù)的某些屬性傳遞給攔截器?
查看完整描述

2 回答

?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗 獲得超7個贊

根據(jù)文檔,目前不支持以下內(nèi)容:

注 1:(還?)不支持子屬性。

編織器僅通過屬性支持兩種類型的參數(shù):

允許以下值:

  • 任何參數(shù)名稱(例如 {fileName})

  • {this}(在實例本身上調(diào)用 ToString())請注意,this 在靜態(tài)方法中不可用,如果在靜態(tài)方法中使用,編織器將拋出錯誤

(強(qiáng)調(diào)我的)

似乎您唯一可以做的就是將屬性包含在重寫的ToString方法中。

織布機(jī)是開源的。如果您有時間可以專注于此,您可以考慮分叉該項目并進(jìn)行必要的更新。一個好的起點似乎是ParameterFormattingProcessor類,它使用基本的正則表達(dá)式來識別參數(shù)名稱。


查看完整回答
反對 回復(fù) 2022-11-21
?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊

Eventid 是 Guid 類型的屬性,需要初始化它,所以請嘗試下面的代碼:


 public class TestClass

    {

   private Guid _EventId;

   public Guid EventId { 

      get=> (_Eventid = 

          _Eventid==null ?  Guid.NewGuid() :

           _Eventid);


      set=>_EventId=value; 

         }


        public string prop1 { get; set; }


        public int prop2 { get; set; }

    }


查看完整回答
反對 回復(fù) 2022-11-21
  • 2 回答
  • 0 關(guān)注
  • 161 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號