扶植電動車 傳陸擬徵燃油稅

大陸要力拚成為新能源汽車大國,設下 2015 年 50 萬量的目標,今年好不容易才「破紀錄」賣了 2 萬輛。電動車製造商比亞迪董事長王傳福透露,大陸正考慮徵收新的燃油稅,等於是用漲油價來補貼環保汽車,但學者直接駁斥「不現實」。   新能源汽車在大陸遇冷,像是價格過高、充電站不足等,王傳福表示,政府不能強迫消費者購買電動汽車,但可建設充電站,而政府補貼若能占車價的 50%,電動汽車就會和普通汽車一樣便宜,消費者就會願意購買電動汽車。   王傳福近日在接受《華爾街日報》採訪時表示,因大陸傳統汽車數量巨大,只徵收每公升 0.2 元人民幣的新燃油稅,也會產生數千億的稅收,政府可利用這筆錢向綠色環保汽車政策傾斜。   但對此,中國石油大學中國油氣產業發展研究中心主任董秀成表示,徵收燃油稅是不現實的,因為汽油價格中已包括大量稅項,沒必要為電動車補貼而開徵新稅項。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準

傳特斯拉超級電池厰 相中內華達州

彭博報導,特斯拉將在美國內華達州興建首座超大電池廠,且已在內華達州可能的電池廠建造地點破土動工,預計 2017 年前竣工完成。   在計劃投資電池廠 50 億美元,及可能直接創造 6500 個工作機會之下,特斯拉電池廠名列數一數二大的美國新工業建案,且這座工廠產能預計將超過目前全球的鋰電池產能。   工廠選址公司 The Boyd Company 負責人博伊德 (John Boyd) 表示,之所以選擇內華達州主要是相中其價格低廉的綠能。此外,內華達州沒有徵收企業所得稅和個人所得稅,這也是特斯拉的選擇原因之一。   特斯拉曾提到可能在亞利桑那州、加州、新墨西哥州和德州為建造工廠,而不具名人士對外透露,內華達州建案不會是特斯拉建造的最後一座電池廠。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

新北清潔公司,居家、辦公、裝潢細清專業服務

※教你寫出一流的銷售文案?

象牙海岸漂浮度假村 70萬塑膠容器打造

摘錄自2019年10月11日公共電視報導

在象牙海岸阿必尚有一座迷你渡假村,是一位法國發明家用70萬個塑膠容器跟浮板打造而成,宛如一座漂浮島嶼。

迷你漂浮島發明家艾瑞克貝克說明,「這是一個人工島,用潟湖的廢物建造,主要是用塑膠瓶打造,這個人造島由大約,70萬個塑膠容器組成。」小小的漂浮島,面積約1千平方公尺大,島上有餐廳、臥室、跟2個游泳池,能讓遊客任意在島上活動。島上的用電,是由太陽能板吸收陽光供應,用水則是過濾海水來使用,白天遊客可以可以坐在陽台、遠眺風景,夜晚就能待在餐廳用餐。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準

電動車方程式錦標賽 全球首站北京開跑

強調科技和環保節能的世界方程式電動賽車錦標賽 (Formula E) 9 月 13 日在北京「鳥巢」和「水立方」周邊的街道舉行,車速最高達到每小時 225 公里,但因電量不足,車手必須在比賽進行到一半時換輪胎。   比賽期間,鳥巢周邊全長 3.44 公里的城市道路封閉為賽道。20 名車手駕駛 20 輛統一訂製的電動賽車經過一天的角逐,最後由巴西車手盧卡斯·迪·格拉斯獲得冠軍。   主辦單位表示,純電動車未來會是城市中心的主要交通工具,因此新誕生的電動方程式錦標賽採取了城市街道賽的形式,所有練習、排位賽和正賽都在一天之內完成,以降低營運成本,並將對舉辦城市的影響降到最低。   世界方程式電動賽車錦標賽將在全球 10 大都市舉行 10 站比賽,跨越亞洲、南美洲、北美洲和歐洲,起點為北京,終點是倫敦。第二站將於 2014 年 11 月 22 日在馬來西亞布城舉行,倫敦賽事則於 2015 年 6 月舉行。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準

健和興電動車充電連接器 獲德美等國認證

健和興端子公司繼 2013 年取得電動車充電連接器 (EV Connector) 進軍歐洲的證書後,近來再次取得 TUVus 證書,已為搶攻美洲電動車市場做好暖身。由於美國政府大力推廣電動車上路,可預期電動車產業將會帶動美國、亞洲等地市場增長,相關的電動車、充電站、以及充電用的線纜等商機可期。   在新興電動車產業中,儘早取得認證即是取得進入新市場的門票。健和興端子為全球的連接器與端子的領導廠商,此次通過 TÜV 認證的電動車充電連接器認證,符合美國 UL 2251 標準,不僅通過各項嚴苛的環境試驗及車載輾壓試驗,且具備戶外 Type 3S 防水等級。   健和興端子引用 SAE J1772 電動車 AC 充電連接器標準介面,此連接器介面已經廣泛被歐美日車廠使用,同時也符合美國 AC Level 1 and Level 2 的充電規格。目前電動車充電系統不管是充電樁或充電連接器的標準都在持續更新中,所以任一認證實驗室及製造廠都得緊跟國際組織的規定,才能儘快取得相關資料。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

新北清潔公司,居家、辦公、裝潢細清專業服務

※教你寫出一流的銷售文案?

.NET Core請求控制器Action方法正確匹配,但為何404?

前言

有些時候我們會發現方法名稱都正確匹配,但就是找不到對應請求接口,所以本文我們來深入了解下何時會出現接口請求404的情況。

匹配控制器Action方法(404)

首先我們創建一個web api應用程序,我們給出如下示例控制器代碼

[ApiController]
[Route("[controller]/[action]")]
public class WeatherController : ControllerBase
{
    [HttpGet]
    string Get()
    {
        return "Hello World";
    }
}

 

當我們進行如上請求時會發現接口請求不到,這是為何呢?細心的你應該可能發現了,對於請求方法是私有,而不是公共的,當我們加上public就可以請求到了接口

[HttpGet("get")]
public string Get()
{
    return "Hello World";
}

匹配控制器Action方法本質

經過如上示例,那麼對於Action方法的到底要滿足怎樣的定義才能夠不至於請求不到呢?接下來我們看看源碼怎麼講。我們找到DefaultApplicationModelProvider類,在此類中有一個OnProvidersExecuting方法用來構建控制器和Action方法模型,當我們構建完畢所有滿足條件的控制器模型后,緊接着勢必會遍歷控制器模型去獲取對應控制器模型下的Action方法,這裏只截取獲取Action方法片段,源碼如下:

foreach (var controllerType in context.ControllerTypes)
{    
    //獲取控制器模型下的Action方法
    foreach (var methodInfo in controllerType.AsType().GetMethods())
    {
        var actionModel = CreateActionModel(controllerType, methodInfo);
        if (actionModel == null)
        {
            continue;
        }

        actionModel.Controller = controllerModel;
        controllerModel.Actions.Add(actionModel);    
    }
}

上述紅色標記則是創建Action模型的重點,我們繼續往下看到底滿足哪些條件才創建Action模型呢?

protected virtual ActionModel CreateActionModel(TypeInfo typeInfo, MethodInfo methodInfo)
{
    if (typeInfo == null)
    {
        throw new ArgumentNullException(nameof(typeInfo));
    }

    if (methodInfo == null)
    {
        throw new ArgumentNullException(nameof(methodInfo));
    }

    if (!IsAction(typeInfo, methodInfo))
    {
        return null;
    }    
    ......    
}

到了這個方法裏面,我們找到了如何確定一個方法為Action方法的源頭,由於該方法有點長,這裏我採用文字敘述來作為判斷邏輯,如下:

protected virtual bool IsAction(TypeInfo typeInfo, MethodInfo methodInfo)
{
    //如果有屬性訪問器(無效)

    //如果有NonAction特性標識無效)

    //如果重寫Equals(Object), GetHashCode()方法(無效)

    //如果實現Dispose方法(無效)

    //如果是靜態方法(無效)

    //如果是抽象方法(無效)

    //如果是構造函數(無效)

    //如果是泛型方法(無效)

    //必須為公共方法
    return methodInfo.IsPublic;
}

如上是從方法定義的角度來過濾而獲取Action方法,除此之外,我們請求方法的名稱還可以自定義,比如通過路由、ActionName特性指定,那麼這二者是否存在優先級呢?比如如下示例:

[ApiController]
[Route("[controller]/[action]")]
public class WeatherController : ControllerBase
{
    [HttpGet]
    [ActionName("get1")]
    public string get()
    {
        var routeValue = HttpContext.Request.RouteValues.FirstOrDefault();

        return routeValue.Value.ToString();
    }
}

我們可以看到此時將以ActionName特性作為方法名稱。所以在上述過濾方法定義后開始構建方法模型,在此之後還會再做一步操作,那就是查找該方法是否通過ActionName特性標識,若存在則以ActionName特性標識給定的名稱作為請求方法名稱,否則以方法定義名稱為準,源碼如下:

var actionModel = new ActionModel(methodInfo, attributes);

AddRange(actionModel.Filters, attributes.OfType<IFilterMetadata>());

var actionName = attributes.OfType<ActionNameAttribute>().FirstOrDefault();
if (actionName?.Name != null)
{
    actionModel.ActionName = actionName.Name;
}
else
{
    actionModel.ActionName = methodInfo.Name;
}

還沒完,若是將路由特性放到Action方法上,如下,此時請求接口應該是weather/get還是weather/get1呢?

[ApiController]
public class WeatherController : ControllerBase
{
    [HttpGet]
    [Route("weather/get")]
    [ActionName("get1")]
    public string get()
    {
        var routeValue = HttpContext.Request.RouteValues.FirstOrDefault();

        return routeValue.Value.ToString();
    }
}

此時若我們以weather/get1請求將出現404,還是以路由特性模板給定為準進行請求,但最終會將路由上Action方法名稱通過ActionName特性上的名稱賦值給Action模型中的ActionName進行覆蓋,源碼如下,所以上述我們得到的action名稱為get1,,當然這麼做沒有任何實際意義。

public static void AddRouteValues(ControllerActionDescriptor actionDescriptor,ControllerModel controller,ActionModel action)
{
    foreach (var kvp in action.RouteValues)
    {
        if (!actionDescriptor.RouteValues.ContainsKey(kvp.Key))
        {
            actionDescriptor.RouteValues.Add(kvp.Key, kvp.Value);
        }
    }

    if (!actionDescriptor.RouteValues.ContainsKey("action"))
    {
        actionDescriptor.RouteValues.Add("action", action.ActionName ?? string.Empty);
    }

    if (!actionDescriptor.RouteValues.ContainsKey("controller"))
    {
        actionDescriptor.RouteValues.Add("controller", controller.ControllerName);
    }
}

總結

本文我們只是單獨針對查找Action方法名稱匹配問題做了進一步的探討,根據源碼分析,對Action方法名稱指定會做3步操作:第一,根據方法定義進行過濾篩選,第二,若方法通過AcionName特性標識則以其所給名稱為準,否則以方法名稱為準,最終賦值給ActionModel上的ActionName屬性,第三,將ActionModel上的ActionName值賦值給路由集合中的鍵Action。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

打擊非法捕撈 韓中漁政船聯合巡邏海域

摘錄自2019年10月14日中央社報導

南韓聯合新聞通訊社報導,南韓海洋水產部14日表示,中國漁船的非法捕撈行為導致海洋資源逐漸減少,亟需採取資源管理措施。韓國與中國漁政船即起啟動相關海域聯合巡邏,展開為期7天的打擊非法捕撈行動。執行任務的漁政船為南韓西海漁業管理團所屬「無窮花35號」,中國部分則為海警局北海分局「6306」船艇。

南韓海洋水產部表示,韓中兩國2014年首次執行聯合巡邏,至今共進行8次,總共攔截31艘中國非法捕撈漁船。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

新北清潔公司,居家、辦公、裝潢細清專業服務

※教你寫出一流的銷售文案?

特斯拉新款可能推 Model S 超跑版本 3秒加速至 96 公里

美國電動車商特斯拉 (Tesla) 即將在美國時間 10 月 9 日召開媒體大會,發表與字母「D」有關的神秘商品。特斯拉執行長 Elon Musk 一週前透過 Twitter 揭露相關訊息後,現在又再度透露了一點線索。   Vanity Fair 報導,Musk 8 日表示,特斯拉即將發表的神秘商品其實早就現身,只是人們都還沒有意識到而已。他說,網友非常會猜,方向大致都正確,但大家都還沒有意識到規模有多大。   Musk 的說法實在太過含糊,但最新的網路謠言也許可以讓大家稍稍解惑。Electrek 9 日引述訊息人士報導,特斯拉會在 9 日的大會上發表「P85D」,這是「Model S」的超跑版本,只要花 3 秒鐘就可把時速從零加快到 60 英里 (大約 96 公里),速度非常驚人。   根據報導,如此的表現已超越布卡堤 (Bugattis)、藍寶堅尼 (Lamborghinis)、麥拿倫 (Mclarens)、法拉利 (Ferraris)、保時捷 (Porsches) 等市面上最高級的超跑車種。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準

F-英瑞搭電動車商機 下一步瞄準特斯拉

北美汽車水箱龍頭大廠英瑞國際 F-英瑞 9月受惠出貨成長,單月營收為 3.3 億元,累計前 9 月營收為 36.85 億元,年增 14.65%,英瑞看好電動車市場,攜手美國大廠合作開發新世代電動貨卡 (pick up),首年訂單銷售將達數萬台,下一步將接觸 TESLA,全面衝刺電動車市場。   F-英瑞第三季單季營收達到 11.13 億元,年增 1.64%,公司表示,北美車市持續改善,帶動 AM 市場成長,公司目前供應多家美國大型連鎖通路訂單,帶動今年成長,目前中國市場已經開始進入暖身階段,預計 2015 年中國市場也將成為另一成長引擎,公司看好明年在北美、中國兩大成長帶動下,營運將會水漲船高。   且為進軍電動車市場,F-英瑞將與美國大廠合作開發新世代電動貨卡,由於新款設計採用汽油發電來帶動運轉,整體續航力可以超過 600 公里,客戶對銷售相當樂觀,預計第 1 年銷售量就可以達到數萬台,由於電動車需要 4 套的冷卻系統,是一般車輛的 4 倍,因此業績將會倍數成長,下一階段將會將會接觸 Tesla,全面衝刺電動車市場。   除了中國、北美市場成長之外,F-英瑞也積極布局現在市佔率偏低的歐洲市場,由於全球汽車市場的成長,公司將積極規畫新產能,預計 2015 年將於東協設廠規劃 200 萬年產能的新廠。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

新北清潔公司,居家、辦公、裝潢細清專業服務

※教你寫出一流的銷售文案?

關於對Entity Framework Core3.1的理解與總結

Entity Framework Core 是一個ORM,所謂ORM也是ef的一個框架之一吧,簡單的說就是把C#一個類,映射到數據庫的一個表,把類裏面的屬性映射到表中的字段。然後Entity Framework Core3.1 是一個長期支持的版本。本人非常樂意對.NET社區繁榮奉獻自己的青春。希望國內以後能夠有越來越多的.NET程序員。

創建了一個.NET Standard類庫。

可以編輯文件查看netStandard版本號,我這裡是一個2.0版本。

順便簡單的說一下netStandard吧,實際上它應該就是一個開源庫,不管是.NET Core還是EntityFramework都可以引用它。就是一個底層類庫,並且該類庫可以在不同的平台運行,ios、mac、linux等。一處編寫多處運行,而且它還是開源的。當然這裏你可以把它改成2.1的版本。

 右鍵項目屬性

這樣就該好了。。。

然後又創建了一個類庫,操作和上面一樣,另一個是創建一個控制台應用,這個控制台應用是.NET Core應用的,版本應該是netcoreapp3.1,可以看看

以上準備工作完成后,就開始進行第一步操作,生成數據庫!

在Demo.Main類庫中創建所需要的類

這裏我就簡單的舉個栗子。一個聯賽類,一個是俱樂部類,一個是球員類,分別是一對多的關係。

namespace Demo.Main
{
    /// <summary>
    /// 聯賽
    /// </summary>
    public class League
    {
        public int  Id { get; set; }
        public string Name { get; set; }
        public string Country { get; set; }
    }
}
using System;
using System.Collections.Generic;

namespace Demo.Main
{
    /// <summary>
    /// 俱樂部
    /// </summary>
    public class Club
    {
        public Club()
        {
            Players=new List<Player>();//以防出現空指針引用
        }
        public int Id { get; set; }
        public string Name { get; set; }
        public string City { get; set; }
        /// <summary>
        /// 俱樂部成立日期
        /// </summary>
        public DateTime Establishment { get; set; }
        public string History { get; set; }
        /// <summary>
        /// 聯賽導航屬性
        /// </summary>
        public League League { get; set; }
        /// <summary>
        /// 一對多,一個俱樂部有多個球員
        /// </summary>
        public List<Player> Players { get; set; }
    }
}
using System;

namespace Demo.Main
{
    /// <summary>
    /// 球員
    /// </summary>
    public class Player
    {
        public int Id { get; set; }
        public string Name { get; set; }
        /// <summary>
        /// 球員出生日期
        /// </summary>
        public DateTime DateOfBirth { get; set; }
    }
}

然後就是在Data中引用Main的項目庫

對Data類庫安裝對數據庫操作的相關依賴,也就是方便對Model映射到數據庫。顯而易見,Data類庫就是操作對Model映射到數據的Code first數據庫遷移操作的。

所以必然是少不了上下文類的編寫和操作了。

接下來就是準備遷移操作了,但是對於Demo.Data類庫來說它是一個底層的類庫,所以我們就得通過Demo.App一個控制台應用來去生成數據庫,然後就要通過NuGet包進行一個引用了。

需要對數據庫操作進行可執行文件的操作需要引用一下依賴吧可以說是

這個就裝在Demo.Data項目中

這裏就可以看到它為什麼對數據庫遷移起到作用了

點擊下載即可,而後才能執行數據庫遷移操作

記得在遷移時一定要選擇上下文存在的類的項目也就是Data

然後就是用命令來操作包管理工具了,來具體總結一下吧!

你可以通過給的提示輸入命令也就是get-help NuGet查看具體的一些幫助命令

主要命令應該就是這些,具體解釋可以再去看看

或者輸入get-help entityframework,結果如下,我們用到的就是Add-Migration(添加遷移)、Update-Database(更新數據庫)這兩個應該就是比較常用的了。

輸入第一個命令 Add-Migration 這裏需要給個參數(實際上有很多參數)這個參數就是會在生成的時間戳後面定義的Name參數

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準