在下面的代碼:(在web服務WebMethod屬性)命名參數混淆
[WebMethod(CacheDuration = 300)]
public string GetData(string Id)
{
}
爲WebMethod屬性類構造器的智能感知示出了第二過載作爲命名的參數。 我的疑問是,在參數名稱後沒有使用冒號(:)指定的命名參數值。這裏如何使用平等運算符?
謝謝。
在下面的代碼:(在web服務WebMethod屬性)命名參數混淆
[WebMethod(CacheDuration = 300)]
public string GetData(string Id)
{
}
爲WebMethod屬性類構造器的智能感知示出了第二過載作爲命名的參數。 我的疑問是,在參數名稱後沒有使用冒號(:)指定的命名參數值。這裏如何使用平等運算符?
謝謝。
您使用的第三種語言特別的屬性,在其中您可以指定字段在構造函數調用使用名稱=值語法屬性實例上初始化。
[WebMethod(cacheDuration: 300)]
可以正常工作,但它使用標準的命名參數語法而不是屬性字段初始化語法。請記住,在存在命名參數之前,屬性就在附近
我相信這與的WebMethod屬性做。
看這有效的代碼:
class TestAttribute : Attribute
{
public int MyProperty { get; set; }
}
class Program
{
[Test(MyProperty=300)]
public void method1()
{
}
}
如果你看一下元數據的WebMethod,有一個名爲「CacheDuration」屬性。
我嘗試使用CacheDuration:300,它顯示消息「最佳重載沒有名爲CacheDuration的參數」 – Jake
@Amit:這是因爲我得到的參數名稱錯誤(應該是小寫);-) – Cameron
是啊你是對的...所以總結起來,與等於的語法實際上是通過屬性初始化字段? – Jake