Как получить блок (Система. Отражение. Блок) для данного типа в .NET?

Вот то, в чем Вы нуждаетесь:

public static DateTime UnixTimeStampToDateTime( double unixTimeStamp )
{
    // Unix timestamp is seconds past epoch
    System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
    dtDateTime = dtDateTime.AddSeconds( unixTimeStamp ).ToLocalTime();
    return dtDateTime;
}

Или, для Java (который отличается, потому что метка времени находится в миллисекундах, не секунды):

public static DateTime JavaTimeStampToDateTime( double javaTimeStamp )
{
    // Java timestamp is milliseconds past epoch
    System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
    dtDateTime = dtDateTime.AddMilliseconds( javaTimeStamp ).ToLocalTime();
    return dtDateTime;
}
35
задан Fabio de Miranda 17 July 2009 в 01:48
поделиться

4 ответа

Assembly.GetAssembly предполагает у вас есть экземпляр типа и типа. GetType предполагает, что у вас есть полное имя типа, которое включает имя сборки.

Если у вас есть только имя базового типа, вам нужно сделать что-то вроде этого:

public static String GetAssemblyNameContainingType(String typeName) 
{
    foreach (Assembly currentassembly in AppDomain.CurrentDomain.GetAssemblies()) 
    {
        Type t = currentassembly.GetType(typeName, false, true);
        if (t != null) {return currentassembly.FullName;}
    }

    return "not found";
}

Это также предполагает, что ваш тип объявлен в корне. Вам нужно будет указать пространство имен или включающие типы в имени, или выполнить итерацию таким же образом.

37
ответ дан 27 November 2019 в 06:52
поделиться
Assembly.GetAssembly(typeof(System.Int32))

Replace System.Int32 with whatever type you happen to need. Because it accepts a Type parameter, you can do just about anything this way, for instance:

string GetAssemblyLocationOfObject(object o) {
    return Assembly.GetAssembly(o.GetType()).Location;
}
33
ответ дан 27 November 2019 в 06:52
поделиться

Если вы можете его использовать, этот синтаксис является самым коротким / чистым:

typeof(int).Assembly
0
ответ дан 27 November 2019 в 06:52
поделиться
Type.GetType(typeNameString).Assembly
2
ответ дан 27 November 2019 в 06:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: